npm -v y运行时报错:npm : 无法加载文件

418 阅读2分钟

npm -v y运行时,报错:npm : 无法加载文件 C:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsof t.com/fwlink/?Lin… 中的 about_Execution_Policies。 所在位置 行:1 字符: 1 + npm -v + ~~~ + CategoryInfo : SecurityError: (:) [],PSSecurityException + FullyQualifiedErrorId : UnauthorizedAccess

这个错误是由于 Windows PowerShell 的执行策略限制,禁止运行脚本文件(如 .ps1 文件)所导致的。npm.ps1 是一个 PowerShell 脚本,默认情况下,系统可能不允许执行这类脚本。你可以通过更改 PowerShell 的执行策略来解决这个问题,以下是具体步骤:

1. 以管理员身份运行 PowerShell

在开始菜单中找到 “Windows PowerShell”,右键单击它,然后选择 “以管理员身份运行”。如果弹出用户账户控制窗口,请确认以继续。

2. 查看当前执行策略

在打开的 PowerShell 窗口中,输入以下命令并按回车键,以查看当前的执行策略:

收起

powershell

Get-ExecutionPolicy

常见的执行策略值有:

  • Restricted:默认策略,禁止运行所有脚本文件。
  • AllSigned:只允许运行由受信任的发布者签名的脚本。
  • RemoteSigned:允许运行本地脚本,但从互联网下载的脚本必须由受信任的发布者签名才能运行。
  • Unrestricted:允许运行所有脚本文件,可能存在安全风险。

3. 修改执行策略

根据你的安全需求,你可以选择将执行策略修改为 RemoteSigned 或 Unrestricted。这里推荐使用 RemoteSigned,它既能满足运行本地脚本的需求,又能在一定程度上保障安全性。在 PowerShell 中输入以下命令并按回车键:

收起

powershell

Set-ExecutionPolicy RemoteSigned

执行该命令后,PowerShell 会提示你确认是否要更改执行策略,输入 Y 并按回车键确认。

4. 验证修改结果

再次输入以下命令来验证执行策略是否已成功修改:

收起

powershell

Get-ExecutionPolicy

如果输出为 RemoteSigned,则表示修改成功。

5. 再次运行 npm -v

现在你可以关闭当前的 PowerShell 窗口,重新打开一个普通的 PowerShell 窗口(无需以管理员身份运行),然后再次输入 npm -v 命令,应该就能正常显示 npm 的版本号了。

注意事项

  • 修改执行策略可能会带来一定的安全风险,尤其是将执行策略设置为 Unrestricted 时。因此,建议仅在必要时进行修改,并在使用完后将执行策略恢复到更安全的设置。
  • 如果你在公司或受管理的环境中工作,可能需要联系系统管理员来修改执行策略,因为某些组织可能会限制用户对执行策略的更改。