Laravel Mix Watch状态加载器间歇性工作问题求助
解决Laravel Mix
npm run watch 全量编译/状态栏异常问题 针对你遇到的npm run watch大部分时候无法保持绿色状态栏、每次全量编译的问题,可按以下步骤排查修复:
调整系统文件监听限制
部分系统默认的文件监听数量不足以支撑项目文件量,导致webpack无法正常触发增量监听。执行以下命令调高限制(重启后依然生效):echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p使用watch-poll替代watch
你的package.json已配置watch-poll命令,直接运行:npm run watch-poll该命令通过主动轮询文件变化替代系统的inotify监听,在虚拟机、共享目录等inotify不生效的环境下稳定性更高,能避免因监听失效导致的全量编译。
清理缓存并重装依赖
缓存损坏或依赖版本冲突可能导致监听逻辑异常,执行以下操作:# 清理Laravel Mix缓存 rm -rf node_modules/.cache # 重装依赖 rm package-lock.json && rm -rf node_modules && npm install检查自定义webpack配置
如果你修改过webpack.mix.js,排查是否存在以下情况:- 配置了全局遍历文件的插件或loader,导致每次编译都扫描所有文件
- 监听路径设置错误,或包含了大量无关文件
确保配置仅监听必要的资源文件,例如:
mix.js('resources/js/app.js', 'public/js') .sass('resources/sass/app.scss', 'public/css');
你的package.json scripts配置参考
{ "dev": "npm run development", "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --config=node_modules/laravel-mix/setup/webpack.config.js", "watch": "npm run development -- --watch", "watch-poll": "npm run watch -- --watch-poll", "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js", "prod": "npm run production", "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --config=node_modules/laravel-mix/setup/webpack.config.js" }
内容的提问来源于stack exchange,提问作者user1978109
相关产品推荐
相关产品推荐

