windows上运行npm运行 报错:“无法加载文件 ...\npm.ps1,因为在此系统上禁止运行脚本。”
如图所示
这个错误提示表明 PowerShell 的执行策略阻止了脚本的运行,而 npm.ps1 是一个 PowerShell 脚本文件,因此被拦截。
Windows PowerShell 默认的安全策略是 Restricted,即默认情况下不允许运行脚本,以防止恶意脚本的执行。npm 命令本身是一个 PowerShell 脚本文件(.ps1),因此当你尝试运行 npm 命令时就会报错。
解决方法
方法 1:临时修改 PowerShell 执行策略
Set-ExecutionPolicy RemoteSigned
需要管理员权限运行 PowerShell 才能更改执行策略。
RemoteSigned 策略含义:
本地脚本可以无限制运行;
从网络下载的脚本必须经过签名才能运行。
输入命令后会提示你确认是否更改策略,输入 Y 确认即可。
其他可选策略(按需选择):
策略名称 描述
Restricted 默认设置,阻止运行脚本
RemoteSigned 推荐,允许本地脚本,远程脚本需签名
AllSigned 所有脚本必须签名
Unrestricted 允许所有脚本,但对远程脚本进行警告
Bypass 不阻止任何脚本,不提示输出
例如,如果你想完全放开限制,可以使用:
Set-ExecutionPolicy Bypass
注意安全风险:Bypass 模式适合临时调试使用,不建议长期开启。
方法 2:使用 CMD 或 PowerShell 的“绕过模式”启动
如果你不想永久更改执行策略,可以在启动 PowerShell 时加上 -ExecutionPolicy Bypass 参数:
powershell -ExecutionPolicy Bypass
这样进入的 PowerShell 会话将不会限制脚本运行,退出后恢复原状。