You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows下以管理员身份运行npm全局安装及corepack enable仍报EPERM错误

解决Windows下npm全局安装@nestjs/cli和corepack enable的EPERM权限错误

问题描述

在Windows系统中执行npm i -g @nestjs/cli或corepack enable时,持续触发EPERM权限错误:无法删除部分目录,也无法打开C:\Program Files\nodejs\nest.ps1文件。已尝试以管理员身份运行CMD/PowerShell、关闭杀毒软件、重启电脑、重新安装Node.js,但问题仍未解决。具体错误日志如下:

C:\Windows\System32>npm i -g @nestjs/cli
npm WARN deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm WARN cleanup Failed to remove some directories [
npm WARN cleanup   [
npm WARN cleanup     'C:\Program Files\nodejs\node_modules\@nestjs\cli',
npm WARN cleanup     [Error: EPERM: operation not permitted, rmdir 'C:\Program Files\nodejs\node_modules\@nestjs\cli\node_modules\typescript\lib'] {
npm WARN cleanup       errno: -4048,
npm WARN cleanup       code: 'EPERM',
npm WARN cleanup       syscall: 'rmdir',
npm WARN cleanup       path: 'C:\Program Files\nodejs\node_modules\@nestjs\cli\node_modules\typescript\lib'
npm WARN cleanup     }
npm WARN cleanup   ],
npm WARN cleanup   [
npm WARN cleanup     'C:\Program Files\nodejs\node_modules\@nestjs\cli',
npm WARN cleanup     [Error: EPERM: operation not permitted, rmdir 'C:\Program Files\nodejs\node_modules\@nestjs\cli\node_modules\rxjs\dist\esm5\internal'] {
npm WARN cleanup       errno: -4048,
npm WARN cleanup       code: 'EPERM',
npm WARN cleanup       syscall: 'rmdir',
npm WARN cleanup       path: 'C:\Program Files\nodejs\node_modules\@nestjs\cli\node_modules\rxjs\dist\esm5\internal'
npm WARN cleanup     }
npm WARN cleanup   ]
npm WARN cleanup ]
npm ERR! code EPERM
npm ERR! syscall open
npm ERR! path C:\Program Files\nodejs\nest.ps1
npm ERR! errno -4048
npm ERR! Error: EPERM: operation not permitted, open 'C:\Program Files\nodejs\nest.ps1'
npm ERR!     at async open (node:internal/fs/promises:638:25)
npm ERR!     at async writeFile (node:internal/fs/promises:1221:14)
npm ERR!     at async Promise.all (index 0)
npm ERR!     at async Promise.all (index 0)
npm ERR!     at async Promise.all (index 0)
npm ERR!     at async #createBinLinks (C:\Program Files\nodejs\node_modules\npm\node_modules\@npmcli\arborist\lib\arborist\rebuild.js:398:5)
npm ERR!     at async Promise.allSettled (index 0)
npm ERR!     at async #linkAllBins (C:\Program Files\nodejs\node_modules\npm\node_modules\@npmcli\arborist\lib\arborist\rebuild.js:379:5)
npm ERR!     at async #build (C:\Program Files\nodejs\node_modules\npm\node_modules\@npmcli\arborist\lib\arborist\rebuild.js:163:7)
npm ERR!     at async Arborist.rebuild (C:\Program Files\nodejs\node_modules\npm\node_modules\@npmcli\arborist\lib\arborist\rebuild.js:65:5)
npm ERR!  Error: EPERM: operation not permitted, open 'C:\Program Files\nodejs\nest.ps1'
npm ERR!     at async open (node:internal/fs/promises:638:25)
npm ERR!     at async writeFile (node:internal/fs/promises:1221:14)
npm ERR!     at async Promise.all (index 0)
npm ERR!     at async Promise.all (index 0)
npm ERR!     at async Promise.all (index 0)
npm ERR!     at async #createBinLinks (C:\Program Files\nodejs\node_modules\npm\node_modules\@npmcli\arborist\lib\arborist\rebuild.js:398:5)
npm ERR!     at async Promise.allSettled (index 0)
npm ERR!     at async #linkAllBins (C:\Program Files\nodejs\node_modules\npm\node_modules\@npmcli\arborist\lib\arborist\rebuild.js:379:5)
npm ERR!     at async #build (C:\Program Files\nodejs\node_modules\npm\node_modules\@npmcli\arborist\lib\arborist\rebuild.js:163:7)
npm ERR!     at async Arborist.rebuild (C:\Program Files\nodejs\node_modules\npm\node_modules\@npmcli\arborist\lib\arborist\rebuild.js:65:5) {
npm ERR!   errno: -4048,
npm ERR!   code: 'EPERM',
npm ERR!   syscall: 'open',
npm ERR!   path: 'C:\Program Files\nodejs\nest.ps1'
npm ERR! }
npm ERR!
npm ERR! The operation was rejected by your operating system.
npm ERR! It's possible that the file was already in use (by a text editor or antivirus),
npm ERR! or that you lack permissions to access it.
npm ERR!
npm ERR! If you believe this might be a permissions issue, please double-check the
npm ERR! permissions of the file and its containing directories, or try running
npm ERR! the command again as root/Administrator.

解决方案

1. 迁移npm全局安装目录到用户文件夹

默认全局目录在系统盘C:\Program Files\nodejs,权限限制严格,手动转移到用户目录可规避问题:

  • 管理员模式打开PowerShell,创建新全局目录:
    mkdir ~/.npm-global
    
  • 配置npm使用新目录:
    npm config set prefix '~/.npm-global'
    
  • 添加新目录到系统环境变量PATH:
    1. 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
    2. 在用户变量中编辑PATH,添加C:\Users\[你的用户名]\.npm-global(替换成实际用户名)
    3. 重启终端后重新执行安装命令

2. 手动清理残留文件后重装

  • 手动删除C:\Program Files\nodejs\node_modules\@nestjs目录和C:\Program Files\nodejs\nest.ps1文件(若删除提示占用,打开任务管理器结束所有node.exe、npm.exe进程再试)
  • 彻底清理npm缓存:
    npm cache clean --force
    
  • 重新执行安装命令:
    npm i -g @nestjs/cli
    

3. 调整Node.js目录权限

  • 右键C:\Program Files\nodejs文件夹→「属性」→「安全」→「编辑」
  • 选中当前登录用户,勾选「完全控制」权限,点击「应用」→「确定」
  • 重启终端后重试命令

4. 临时调整PowerShell执行策略

针对nest.ps1无法打开的问题,临时放宽执行策略:

  • 管理员模式打开PowerShell,执行:
    Set-ExecutionPolicy Bypass -Scope Process
    
  • 安装完成后建议恢复默认策略:
    Set-ExecutionPolicy Restricted -Scope Process
    

5. 修复corepack权限问题

执行corepack enable报错时,可尝试:

  • 指定corepack安装目录到用户文件夹:
    corepack enable --install-directory ~/.npm-global
    
  • 或先卸载再重装corepack:
    npm uninstall -g corepack
    npm install -g corepack
    corepack enable
    

内容的提问来源于stack exchange,提问作者GGomesBRA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 17:34:53