解决 VS Code 终端 npm 报错:在此系统上禁止运行脚本 (PSSecurityException)

解决 VS Code 终端 npm 报错:在此系统上禁止运行脚本 (PSSecurityException)


Troubleshooting
PowerShell Node.js npm VS Code Windows

异常现场

在 VS Code 终端跑前端构建(如 npm run build)时,直接被红字报错阻断:

npm : 无法加载文件 …\npm.ps1,因为在此系统上机制运行脚本。 CategoryInfo : SecurityError: (:) [],PSSecurityException FullyQualifiedErrorId : UnauthorizedAccess

核心结论

这是 PowerShell 默认执行策略限制 拦截了 npm 脚本。通过管理员权限将策略改为 RemoteSigned 即可永久解锁。


根因诊断与底层机制

1. PowerShell 沙箱机制

VS Code 默认用 PowerShell 终端。为了安全,系统预设了 Restricted(受限模式),禁掉所有 .ps1 脚本。因为 npm、yarn、pnpm 的底层都是脚本调用,碰上这个策略会被直接锁死。

2. 为什么 CMD 或 Git Bash 不报错?

CMD 和 Git Bash 不走 PowerShell 的这套安全策略。如果你切换到这些终端,脚本能跑。但为了统一在 VS Code 开发,还是建议把 PS 权限修了。

3. 工程级平替方案:RemoteSigned 策略

全栈开发避不开 .ps1 脚本(包括 Python 虚拟环境)。把策略切到 RemoteSigned 可以在保证安全的前提下放行本地生成的脚本,是开发环境的标配。


终极解法:彻底解锁 SOP

Step 1: 以管理员身份唤醒 PowerShell

  1. 关掉 VS Code。
  2. 搜索 PowerShell,右键点击 “以管理员身份运行”

Step 2: 注入执行策略修改指令

在窗口里执行:

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

Step 3: 确认权限修改

出现警告提示时,直接按 Y 确认。

tep 4: 验证并恢复开发

重启 VS Code,回到终端跑 npm run build,报错应该已经消失。

© 2026 Personal Website
Developed by Ryan 🫡