3

我有一个项目,我想编译单独的脚本包——一个主要的脚本包包含在每个页面上,而一堆单独的包只包含在特定页面上。

我有一个如下所示的 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 编译多个捆绑包?

4

2 回答 2

2

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

您没有添加目录结构。

应该是

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

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

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

于 2015-03-11T04:49:46.527 回答
0

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

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

我通过删除冗余而不是site.js自行编译来解决这个问题。它现在被包含在内student.js,我只是student_bundle.js在页面上包含而不是site.jsAND student_bundle.js

于 2015-03-12T00:16:57.410 回答