我最近安装了npm-windows-upgrade以升级到最新版本的npm。这是为了摆脱我在安装节点模块的问题,但由于所有依赖项的嵌套,它经常会超过windows最大路径长度。
执行此过程后,livereload.js不再被加载到浏览器中,我的gulp任务崩溃我访问了页面URL。 Node最终会将其吐出到控制台:
events.js:72 扔掉//未处理的错误'事件 ^ 错误:ENOENT,打开' C:[项目路径] \ node_modules \ tiny-lr \ node_modules \ livereload-js \ dist \ livereload.js' 流程终止于代码8
问题是什么以及如何解决?
答案 0 :(得分: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的相对路径。