PowerShell 执行策略限制导致的 `npm` 命令无法运行的安全错误

PowerShell 执行策略限制导致的 npm 命令无法运行的安全错误

bash 复制代码
npm install
npm : 无法加载文件 D:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。
所在位置 行:1 字符: 1
+ npm install
+ ~~~
    + CategoryInfo          : SecurityError: (:) [],PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess

1. 错误原因解释

Windows PowerShell 有 执行策略(Execution Policies) 这个安全机制,默认设置为 Restricted(受限),会阻止运行任何 .ps1 脚本文件,而 npm 命令在 PowerShell 中会调用 npm.ps1 脚本,因此触发了这个安全错误。

2. 解决方案(按优先级推荐)

方案 1:临时解决(仅当前 PowerShell 窗口生效)

最简单的方式是切换到 CMD 命令提示符 执行 npm install(CMD 不受 PowerShell 执行策略限制):

  1. 按下 Win + R,输入 cmd 回车打开 CMD 窗口;
  2. 切换到你的项目目录(如 d:\kirohome\mes-frontend);
  3. 执行 npm install 即可。
方案 2:永久解决(修改 PowerShell 执行策略)

如果想在 PowerShell 中正常使用 npm,需要放宽执行策略(推荐设置为 RemoteSigned,既安全又能运行本地脚本):

  1. 以管理员身份打开 PowerShell

    • 按下 Win 键,搜索 PowerShell,右键选择「以管理员身份运行」;
  2. 执行修改执行策略的命令

    powershell 复制代码
    Set-ExecutionPolicy RemoteSigned
  3. 确认修改
    输入 Y 并回车确认(部分系统会显示英文提示,输入 Y 即可);

  4. 验证效果
    关闭管理员 PowerShell,重新打开普通 PowerShell,切换到项目目录执行 npm install,即可正常运行。

方案 3:单次绕过(仅当前命令生效)

如果不想修改全局执行策略,也可以在执行 npm 时临时绕过限制(需管理员权限):

powershell 复制代码
powershell -ExecutionPolicy Bypass -Command "npm install"

3. 执行策略说明(可选)

修改后的 RemoteSigned 执行策略规则:

  • 允许运行 本地创建 的脚本(如 npm.ps1),无需数字签名;
  • 要求从网络下载的脚本必须有可信数字签名(兼顾安全性);
  • 这是开发场景下的最佳实践,既避免了默认的严格限制,又防止恶意脚本运行。

总结

  1. 临时解决 :切换到 CMD 执行 npm install,无需修改任何配置;
  2. 永久解决 :以管理员身份运行 PowerShell,执行 Set-ExecutionPolicy RemoteSigned 并确认;
  3. 核心原理 :问题根源是 PowerShell 执行策略限制,而非 npm 本身,修改策略后即可正常使用。
相关推荐
技术传感器3 分钟前
Hermes为什么开始像基础设施:11万星、RCE修复与生态接入
人工智能·安全·架构·aigc
ejinxian21 分钟前
Rust GUI框架Azul与Electron、WebView2
前端·javascript·electron
IT_陈寒1 小时前
Vue的v-for里用index当key,我被自己坑惨了
前端·人工智能·后端
alxraves1 小时前
医疗器械质量管理体系信息系统的详细设计
大数据·安全·健康医疗·制造
代码不加糖2 小时前
0基础搭建前后端分离项目:实现菜单与界面左右布局
java·前端·javascript·mysql·elementui·mybatis
小柯博客2 小时前
STM32MP2安全启动技术深度解析
c语言·c++·stm32·嵌入式硬件·安全·开源·github
zhensherlock2 小时前
Protocol Launcher 系列:Tally 快速计数器的深度集成
前端·javascript·typescript·node.js·自动化·github·js
AC赳赳老秦2 小时前
OpenClaw权限管理实操:团队共享Agent,设置操作权限,保障数据安全
服务器·开发语言·前端·javascript·excel·deepseek·openclaw
光影少年2 小时前
Polyline 组件如何绘制渐变区域?
前端·javascript·掘金·金石计划
Pkmer2 小时前
古法编程: React思维模型快速建立
前端·react.js