执行pnpm self-update更新时触发EPERM权限错误,求可行解决方案
Windows下pnpm自更新EPERM权限问题的可行解决方案
当前使用pnpm 9.12.3,执行pnpm self-update更新到9.14.4时触发以下错误:
WARN 目标bin目录已存在名为pnpm的可执行文件,正在移除
C:\Users\username\AppData\Local\pnpm\pnpm.EXE
EPERM EPERM: operation not permitted, unlink
'C:\Users\username\AppData\Local\pnpm\pnpm.EXE'
问题核心是Windows系统禁止删除正在运行的程序文件,pnpm更新时需要替换自身exe文件,陷入“正在运行的程序无法删除自身”的死循环,且已知相关议题中的方案无效。以下是可行的解决办法:
方案1:用PowerShell异步执行更新
通过启动独立进程执行更新,避免当前pnpm进程占用自身exe文件。执行命令:Start-Process pnpm -ArgumentList "self-update" -NoNewWindow -Wait方案2:手动替换pnpm.exe
- 获取最新版pnpm.exe(对应9.14.4版本)
- 打开任务管理器,终止所有pnpm相关进程(包括后台守护进程)
- 找到路径
C:\Users\username\AppData\Local\pnpm\pnpm.EXE,用新版exe覆盖原文件 - 执行
pnpm -v验证版本是否更新成功
方案3:通过npm间接更新
若系统已安装npm,可借助npm安装最新版pnpm,绕过自身更新限制:npm install -g pnpm@latest安装完成后执行
pnpm -v确认版本。
内容的提问来源于stack exchange,提问作者FluffyBike
相关产品推荐
相关产品推荐

