跳到主要内容

Windows

PowerShell

  • 运行 npm -v 时报错
  • 遇到的错误是因为 Windows PowerShell 的 执行策略 (Execution Policy) 限制了脚本的执行,导致你无法运行 npm 命令。默认情况下,PowerShell 会阻止执行未签名的脚本或没有正确权限的脚本,以确保系统的安全。

解决这个问题有以下几种方法:

1. 临时更改执行策略

你可以临时更改 PowerShell 的执行策略,让它允许执行脚本。执行以下命令来临时允许所有脚本:

  1. 管理员身份 打开 PowerShell:

    • 在开始菜单中搜索 PowerShell,右键点击“Windows PowerShell”,选择“以管理员身份运行”。
  2. 输入以下命令以临时修改执行策略:

    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process

    这个命令会在当前 PowerShell 会话中将执行策略设置为 RemoteSigned,这意味着本地脚本可以执行,而从远程获取的脚本必须是已签名的。

  3. 然后再尝试运行你的 npm 命令:

    npm -v

2. 永久更改执行策略

如果你希望每次打开 PowerShell 时都不受执行策略限制,可以永久更改执行策略。

  1. 以管理员身份打开 PowerShell。

  2. 输入以下命令:

    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

    这将允许当前用户执行本地脚本,并且从远程下载的脚本必须经过签名。

  3. 再次尝试运行 npm 命令。

3. 检查当前执行策略

你可以检查当前的执行策略,使用以下命令查看:

Get-ExecutionPolicy -List

这将显示当前在不同范围(如 MachinePolicy, UserPolicy, Process, CurrentUser, LocalMachine)下的执行策略。

4. 恢复默认执行策略

如果你更改了执行策略后遇到问题,可以恢复默认的执行策略:

Set-ExecutionPolicy -ExecutionPolicy Restricted -Scope CurrentUser

注意:

  • 执行策略的不同选项含义:

    • Restricted: 默认设置,不允许任何脚本执行。
    • RemoteSigned: 允许本地脚本执行,但从 Internet 下载的脚本需要有有效签名。
    • Unrestricted: 允许所有脚本执行(最不安全)。
    • Bypass: 不对脚本执行做任何限制。

更改执行策略后,应该可以顺利执行 npm 或其他相关脚本命令。如果问题依然存在,请尝试重新启动 PowerShell 或检查是否存在其他权限问题。