0

我最近安装了 npm-windows-upgrade 以升级到最新版本的 npm。这是为了解决我在安装节点模块时遇到的问题,但由于所有依赖关系的嵌套,通常会超过 Windows 的最大路径长度。

执行此过程后,livereload.js 不再加载到浏览器中,我的 gulp 任务崩溃了,我访问了页面 URL。节点最终会将其吐到控制台:

events.js:72 投掷者;// 未处理的 'error' 事件 ^ 错误:ENOENT, open 'C:[project path]\node_modules\tiny-lr\node_modules\livereload-js\dist\livereload.js' 进程以代码 8 终止

问题是什么以及如何解决?

4

1 回答 1

0

这里的问题是,当安装 npm-windows-upgrade 到更高版本的 npm 时,npm 不再将包安装为嵌套依赖项,除非所述包与顶层的另一个包版本冲突。

这意味着作为 tiny-lr 一部分的 node_modules 不再存在于您指定它们时 tiny-lr 期望它们所在的子目录中。这意味着必须建立一种将这种更改传达给 tiny-lr 模块的方法。

幸运的是,在 tiny-lr 实例化时,您可以指定 livereload.js 文件的路径。

lrserver = require('tiny-lr')({ livereload: "node_modules/livereload-js/dist/livereload.js" }),

请注意,路径是执行 gulpfile 的相对路径。

于 2015-09-09T10:37:30.503 回答