多次编辑Vue.js文件后webpack报ENOENT找不到global.js错误如何解决?
问题原因
该问题是Laravel Mix 6.0.27版本的已知缺陷,属于webpack增量编译的模块路径缓存异常:多次修改文件触发增量编译时,webpack的内置模块路径映射会丢失,加上CentOS系统下文件监听的缓存同步存在延迟,就会出现找不到webpack/buildin/global.js的报错。删除依赖重新安装无法解决是因为问题出在编译环节的缓存逻辑,和依赖包本身无关。
解决方法
- 方案1(推荐):将Laravel Mix降级到无该缺陷的6.0.19版本,执行以下命令即可:
安装完成后删除npm install laravel-mix@6.0.19 --save-devnode_modules目录和package-lock.json文件,重新执行npm install即可。 - 方案2(不改动Mix版本):在项目根目录的
webpack.mix.js中添加配置禁用webpack缓存:
该方案会小幅降低编译速度,但可以彻底解决增量编译的路径丢失问题。mix.webpackConfig({ cache: false }) - 方案3(临时应急):报错后直接终止当前
npm run watch进程,重新执行npm run watch即可恢复正常,适合偶尔遇到该问题不想改配置的场景。 - 补充优化:可将npm版本升级到8.x版本(Node 14完全兼容),执行
npm install -g npm@8,新版本npm的依赖链路管理逻辑更稳定,能降低这类缓存问题的出现概率。
内容的提问来源于stack exchange,提问作者BeatinCakes
相关产品推荐
相关产品推荐

