EPERM错误源于Windows对C:\Program Files\nodejs等受保护目录的写入限制,需以管理员身份运行终端或改用用户级全局目录(如%USERPROFILE%\npm-global)并配置prefix和PATH来永久规避。

在Windows 10中执行npm install -g命令时提示EPERM: operation not permitted,说明系统拒绝了当前用户对受保护目录(如C:\Program Files\nodejs)的写入操作,必须通过提升权限来绕过UAC限制。
以管理员身份运行终端
点击Windows“开始”菜单 → 在搜索框中输入cmd或PowerShell或Windows Terminal → 右键点击对应程序图标 → 选择“以管理员身份运行”。
这一步必须手动触发,仅用普通用户打开的终端窗口无法获得写入C:\Program Files\nodejs的权限,即使你当前账户是管理员组成员。
验证管理员权限是否生效
在弹出的管理员终端中,直接输入:npm config get prefix → 回车。
如果返回路径是C:\Program Files\nodejs,说明当前环境已具备向Node.js安装目录写入的权限;若仍返回%APPDATA%\Roaming\npm,说明未真正进入管理员上下文,请关闭所有终端重试第一步。
【关键前提】必须关闭所有此前打开的非管理员终端窗口,否则新命令可能继承旧会话的权限上下文。
执行全局安装
方法一:直接安装
在已确认为管理员权限的终端中,运行:npm install -g pnpm 或 npm install -g cnpm。
方法二:启用Corepack后安装(适用于pnpm v8+)
先运行 corepack enable → 再运行 corepack prepare pnpm@latest --activate。
这两条命令必须在同一个管理员终端中连续执行,中途切换窗口会导致corepack写入失败。
方法三:跳过系统目录,改用用户目录安装(永久规避EPERM)
① 创建用户级全局目录:mkdir %USERPROFILE%\npm-global
② 配置npm前缀:npm config set prefix "%USERPROFILE%\npm-global"
③ 将该目录加入系统PATH:setx PATH "%PATH%;%USERPROFILE%\npm-global" → 关闭并重启终端生效。
此后所有npm install -g命令将自动写入用户目录,不再触发EPERM。


















