Node.js项目执行npm install时出现EPERM及意外令牌语法错误
Node.js项目npm install报错:EPERM(-4048) + 语法错误
问题背景
团队统一使用Node.js 18.17.1 + npm 9.6.7,在该版本下执行npm install时,同时触发两类错误:
- EPERM(-4048)权限错误(rmdir操作不被允许)
- 语法错误:
Unexpected token {(来自esbuild的install.js脚本)
其他Node.js应用运行正常,仅当前项目出现该问题。
错误详情
npm WARN cleanup [Error: EPERM: Operation not permitted, rmdir 'application\node_modeules\packagename\....'{ npm WARN cleanup errno: -4048, npm WARN code: 'EPERM', npm WARN syscall: 'rmdir', npm WARN path: 'application\node_modules\... } ] npm ERR! CODE 1 npm ERR! Path ....\application\node_modules\esbuild npm ERR! Command failed npm ERR! command C:\windows\system32\cmd.exe /d /s /c node install.js npm ERR! } catch { npm ERR! ^ npm ERR! Syntax error: Unexpected token { npm ERR! at createscript (vm.js:80:10) npm ERR! at Object.runInThisContext (vm.js:139:10) npm ERR! at Module._compile (module.js:617:28) .... .... npm ERR! at bootstrap_node.js:625:3
已尝试的解决方案
- 删除
node_modules和package-lock.json后重新执行npm install - 全局升级npm到最新版本,问题依旧
- 同步
.npmrc和.bash_profile配置与团队成员一致 - 尝试多个Node.js/npm版本组合(Node.js 18.17.1/20.11.1/18.13;npm 9.6.7/10.8/8.18.0),均无效
- 确认项目文件拥有完全控制权
- 清除VS Code缓存与编辑器历史
- 删除并重新导入项目
- 在系统环境变量Path中配置npm home路径
针对性解决建议
1. 锁定兼容的esbuild版本
语法错误明确指向esbuild的install.js脚本,大概率是版本兼容性问题或缓存文件损坏:
- 打开项目
package.json,手动指定兼容Node.js 18的esbuild版本(例如^0.19.10,该版本支持Node.js 14+) - 执行以下命令彻底清理后重装:
npm cache clean --force rmdir /s /q node_modules del package-lock.json npm install
2. 解决Windows权限与文件锁定问题
EPERM错误通常和Windows文件占用或权限限制有关:
- 关闭所有可能占用项目文件的程序(VS Code、终端、杀毒软件等),再执行
npm install - 右键终端选择以管理员身份运行,重新执行安装命令
- 检查项目路径是否包含空格、中文或特殊字符,若有,将项目移动到纯英文无空格的路径下
3. 排查自定义安装脚本
部分依赖的预安装/后安装脚本可能存在语法问题:
- 查看
package.json中的preinstall、postinstall字段,确认无语法错误 - 执行
npm install --ignore-scripts跳过所有安装脚本,若成功,再逐个排查哪个脚本导致问题
4. 彻底清理npm缓存
手动删除npm缓存目录确保无残留:
- 找到缓存路径:
C:\Users\<你的用户名>\AppData\Roaming\npm-cache - 删除该目录下所有文件,再执行
npm install
内容的提问来源于stack exchange,提问作者Keerthana Hemachandran
相关产品推荐
相关产品推荐

