使用NPM和Watchify编译多个脚本包

时间:2015-03-02 23:06:36

标签: javascript npm watchify

我有一个项目,我想编译单独的脚本包 - 一个主要包含在每个页面上,另外一个包含在特定页面上的单独包。

我有一个NPM脚本,如下所示:

"build-site": "watchify Scripts/site.js -o Scripts/bundle.js -v -d .",
"build-student": "watchify Scripts/modules/student.js -o Scripts/student_bundle.js -v -d .",
"start": "npm run build-site | npm run build-student",

所以我运行npm start并启动Watchify并开始观看文件。这部分效果很好。

每当我对学生模块进行更改时,两个文件都会被重新编译(没问题)但是当我在浏览器中查看该页面时,我得到一个错误,模块' site.js'无法找到。

如果我然后转到site.js文件并修改某些内容,则会重新编译,但这次它在浏览器中运行良好。

所以问题的关键在于,当我尝试编译一个文件时,我必须对另一个文件进行更改才能正确编译。我觉得我这样做的方式有点不稳定但我找不到有关使用Watchify捆绑多个文件的大量信息。

总结我的问题:如何以避免上述问题的方式使用Watchify编译多个捆绑包?

2 个答案:

答案 0 :(得分:2)

我没有足够的代表发表评论,所以我会在这里发布。

您没有添加目录结构。

应该是

"build-site": "watchify Scripts/modules/site.js -o Scripts/bundle.js -v -d ."

将site.js路径从Scripts / file更改为Scripts / module / file

无法确定,我看不到目录布局。

答案 1 :(得分:0)

这个问题最终似乎很简单。我试图编译的其中一个文件实际上包含在另一个文件中。

我怀疑发生了什么site.js正在被npm编译和锁定,然后在student.js准备好之前就开始编译site.js

我通过删除冗余而不是自己编译site.js来修复此问题。它现在被student.js包含在内,我只是在页面上包含student_bundle.js,而不是site.jsstudent_bundle.js