我有一个项目,我想编译单独的脚本包 - 一个主要包含在每个页面上,另外一个包含在特定页面上的单独包。
我有一个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编译多个捆绑包?
答案 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.js
和student_bundle.js
。