Laravel 5.6项目执行npm run dev卡在95% emitting问题求助
解决Laravel 5.6 + Laravel Mix卡在95% emitting的问题
我之前在Laravel 5.6项目里用laravel-mix的时候也碰到过一模一样的问题,每次npm run dev都卡在95% emitting阶段,折腾了好一阵才解决,给你几个亲测有效的方案:
1. 彻底清理依赖与缓存
有时候依赖缓存或者损坏的node_modules会导致这个问题,先彻底清理重新安装:
- Windows系统执行:
rd /s /q node_modules del package-lock.json yarn.lock npm install - 类Unix系统执行:
rm -rf node_modules package-lock.json yarn.lock npm install - 额外清理Laravel Mix的缓存:删除
public/mix-manifest.json文件,以及storage/framework/cache目录下的所有缓存内容。
2. 简化webpack.mix.js配置排查
大概率是你的配置里有资源路径错误或者复杂的处理逻辑卡住了,先简化配置测试:
把webpack.mix.js改成最基础的配置:
const mix = require('laravel-mix'); mix.js('resources/js/app.js', 'public/js') .sass('resources/sass/app.scss', 'public/css');
再执行npm run dev,如果能正常完成,就说明是你原来的配置里有问题(比如mix.copy路径错误、引用了不存在的资源文件等),再逐步加回原来的配置排查。
3. 匹配正确的依赖版本
Laravel 5.6对应的laravel-mix版本是2.x系列,如果你安装的是更高版本可能会出现兼容性问题:
- 打开
package.json,把laravel-mix的版本改成"laravel-mix": "^2.1.14" - 重新执行
npm install
另外,Node.js版本也别太高,Laravel 5.6推荐使用Node 8.x或10.x版本,过高的Node版本可能会和旧版laravel-mix不兼容,可以用nvm切换到合适的版本试试。
4. 查看详细日志定位问题
如果上面的方法都没解决,就开启webpack的详细日志,看看到底卡在哪个环节:
执行命令时去掉--hide-modules参数,换成:
npm run development -- --progress --verbose
这样能看到emitting阶段具体在处理哪个文件,方便精准定位问题。
内容的提问来源于stack exchange,提问作者Ricky
相关产品推荐
相关产品推荐

