Windows10下NodeJS v20.2.0升级NPM至v9.7.2遇EPERM权限错误
我在Windows 10系统上安装了NodeJS v20.2.0,但当前NPM版本为v7.5.2,无法升级至v9.7.2。尝试在cmd和Powershell中执行命令:
npm install -g npm@latest
出现如下错误:
npm ERR! code EPERM
npm ERR! syscall rename
npm ERR! path C:\Program Files\nodejs\node_modules\npm
npm ERR! dest C:\Program Files\nodejs\node_modules.npm-QXjMEw5N
npm ERR! errno -4048
npm ERR! Error: EPERM: 操作不被允许,重命名 'C:\Program Files\nodejs\node_modules\npm' -> 'C:\Program Files\nodejs\node_modules.npm-QXjMEw5N'
npm ERR! [Error: EPERM: 操作不被允许,重命名 'C:\Program Files\nodejs\node_modules\npm' -> 'C:\Program Files\nodejs\node_modules.npm-QXjMEw5N'] {
npm ERR! errno: -4048,
npm ERR! code: 'EPERM',
npm ERR! syscall: 'rename',
npm ERR! path: 'C:\Program Files\nodejs\node_modules\npm',
npm ERR! dest: 'C:\Program Files\nodejs\node_modules\.npm-QXjMEw5N'
npm ERR! }
npm ERR!
npm ERR! 操作被操作系统拒绝。
npm ERR! 可能文件已被其他程序占用(比如文本编辑器或杀毒软件),
npm ERR! 或者你没有访问该文件的权限。
npm ERR!
npm ERR! 如果你认为是权限问题,请仔细检查文件及其所在目录的权限,或尝试以管理员/root身份重新运行命令。npm ERR! 本次运行的完整日志可在以下路径找到:
解决方法
1. 以管理员身份运行终端
右键点击cmd或PowerShell,选择「以管理员身份运行」,重新执行升级命令:
npm install -g npm@latest
2. 关闭占用npm文件的程序
- 关闭所有打开NodeJS目录或npm相关文件的文本编辑器(如VS Code、Notepad++等)
- 临时禁用杀毒软件或防火墙,避免其锁定npm目录
- 打开任务管理器,结束所有与NodeJS、npm相关的后台进程
3. 修改npm目录权限
- 打开文件资源管理器,定位到
C:\Program Files\nodejs\node_modules - 右键点击
npm文件夹,选择「属性」→「安全」标签 - 点击「编辑」,选中你的用户账户,勾选「完全控制」权限,点击「确定」保存
- 重新执行升级命令
4. 使用nvm管理Node版本(推荐)
nvm可规避权限问题,同时支持灵活切换Node版本:
- 卸载当前NodeJS
- 下载并安装nvm的Windows版本
- 通过nvm安装NodeJS v20.2.0:
安装完成后npm会自动匹配对应版本,无需手动升级nvm install 20.2.0 nvm use 20.2.0
5. 重新安装NodeJS
若以上方法无效,直接重装NodeJS(内置对应版本的npm):
- 下载NodeJS官网v20.x系列的最新安装包
- 卸载现有NodeJS,重启电脑后完成新安装
- 验证版本:
npm -v
内容的提问来源于stack exchange,提问作者Thabo Mosenthal

