.png)
解决npm : 无法加载文件 \npm.ps1,因为在此系统上禁止运行脚本!
在使用 npm 命令时,部分 Windows 用户可能会遇到以下错误:
npm : 无法加载文件 D:\nvm4w\nodejs\npm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https://go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。
所在位置 行:1 字符: 1
+ npm
+ ~~~
+ CategoryInfo : SecurityError: (:) [],PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
该错误是由于 Windows PowerShell 的执行策略限制了脚本的运行。npm 本身是一个 PowerShell 脚本(.ps1),因此在默认策略下会被阻止执行。
一、问题原因
Windows PowerShell 的默认执行策略为 Restricted
,该策略禁止运行任何脚本,以防止潜在恶意脚本的执行。
二、解决方法
方法一:临时修改执行策略(推荐)
查看当前策略:
Get-ExecutionPolicy
若返回 Restricted
,说明脚本执行被禁用。
修改为 RemoteSigned 策略:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
✅
RemoteSigned
允许运行本地脚本,仅对来自互联网的脚本要求数字签名。⚠️ 需在管理员模式下运行 PowerShell。
其他策略选项(按需选择):
方法二:以绕过策略方式启动 PowerShell
如果不想永久修改策略,可使用以下命令启动一个临时放宽限制的 PowerShell 会话:
powershell -ExecutionPolicy Bypass
方法三:使用 CMD 或 Git Bash
你也可以直接使用命令提示符(CMD)或 Git Bash 等非 PowerShell 环境运行 npm,不会受此策略限制。
三、验证是否解决
执行以下命令,若正常显示版本号则表示问题已解决:
npm -v
四、补充说明
该问题一般出现在使用 nvm-windows 安装的 Node.js 环境中。
若你无管理员权限,可尝试仅修改当前用户的策略(使用
-Scope CurrentUser
),或使用方法二临时绕过。
五、常见问题(FAQ)
Q1:运行 Set-ExecutionPolicy
提示权限不足?
A:请右键点击 PowerShell,选择 “以管理员身份运行”。
Q2:没有管理员权限怎么办?
A:可尝试仅修改当前用户策略:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
或使用临时会话:
powershell -ExecutionPolicy Bypass
Q3:为什么直接输入 npm
报错,但 npm.cmd
可以运行?
A:PowerShell 默认优先执行 .ps1
脚本,而 npm.cmd
是 CMD 批处理文件,需显式输入完整名称才会执行。
本文是原创文章,完整转载请注明来自 午后阳光
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果