如何解决运行webpack命令时出现的EPERM: operation not permitted错误
webpack 反复出现 EPERM 写入文件报错的彻底解决方案
该报错核心是目标文件被其他进程锁定导致webpack无法获得写入权限,并非你配置的账号/文件夹权限问题,可按以下优先级排查解决:
- 排除安全软件拦截占用:Windows Defender、第三方杀毒软件的实时扫描功能会在webpack生成bundle文件时锁定文件进行安全检测,导致后续编译写入失败。将项目根目录、dist输出目录加入安全软件的白名单/排除项即可解决。
- 清理Node进程残留:多次启停dev服务可能产生未正常退出的node进程,持续占用dist目录下的文件。可在package.json中添加前置脚本自动清理残留,Windows环境配置如下:
{ "scripts": { "predev": "taskkill /F /IM node.exe 2>nul || exit 0", "dev": "webpack --mode=development" } } - 替换旧的清理插件:如果使用了
clean-webpack-plugin,旧版本存在Windows下文件锁定的bug,webpack 5+可直接使用原生清理配置,无需引入第三方插件:// webpack.config.js 中output配置添加clean属性 module.exports = { output: { clean: true, // 编译前自动清空dist目录 // 其他output配置 } } - 排查目录同步冲突:如果项目存放在OneDrive、百度网盘等同步盘目录下,后台同步进程会锁定正在同步的文件,将项目迁移到本地非同步目录即可。
- 升级包管理工具:旧版npm的缓存锁机制存在bug,可将npm升级到最新LTS版本,或者切换为pnpm、yarn作为包管理工具。
内容的提问来源于stack exchange,提问作者ringhiosi
相关产品推荐
相关产品推荐

