WSL环境下npm run watch突然停止触发代码更新求助
WSL2下Symfony Encore Watch失效解决方案
将项目移至WSL2内部文件系统
WSL2对Windows挂载目录(如/mnt/c/)的文件事件监听支持存在缺陷,把项目放到WSL2原生目录(比如/home/你的用户名/项目名)下,再重新执行npm run watch测试。启用poll轮询模式
在webpack.config.js中手动配置watch的轮询机制,强制Encore主动检查文件变化:Encore.configureWatchOptions(watchOptions => { watchOptions.poll = 250; // 每250毫秒轮询一次,可根据需求调整数值 });核对版本兼容性
检查Node.js和Symfony Encore的版本是否匹配,部分Windows更新可能间接影响了版本适配。可以尝试更新Encore到最新稳定版:npm install @symfony/webpack-encore@latest --save-dev或者切换到项目原本正常运行时的Node.js版本(可用nvm管理版本)。
重启WSL2实例
执行wsl --shutdown关闭所有WSL进程,重新打开终端启动项目,Windows更新后WSL的文件系统监听可能出现临时异常,重启即可修复。排查Windows Defender干扰
临时关闭Windows Defender实时保护,测试watch功能是否恢复。如果有效,把项目目录添加到Defender的排除列表,避免后续再次干扰。
额外检查:确认
package.json里的watch命令确实是encore dev --watch,且webpack.config.js中没有其他自定义配置覆盖了watch行为。
内容的提问来源于stack exchange,提问作者haribo
相关产品推荐
相关产品推荐

