Win11终端npm报错解决办法!(nvm管理node、自己下载node都能解决)

917 阅读2分钟

首先检查环境变量

检查nvm版本间接检查nvm是否配置成功 nvm -v 检查node版本 node -v 都显示对于的版本号则一切正常。

npm报错信息如果是

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

恭喜你,我能帮你解决了

  1. 打开一个管理员权限的 PowerShell 窗口。
  2. 运行 Get-ExecutionPolicy 命令以查看当前的执行策略

如果输出结果为 Restricted,则需要将其更改为 RemoteSigned 或 Unrestricted。可以通过以下命令之一执行:Set-ExecutionPolicy RemoteSigned 将执行策略更改为 RemoteSigned。Set-ExecutionPolicy Unrestricted 将执行策略更改为 Unrestricted。

RemoteSigned 策略的作用是允许在本地计算机上制作的数字签名的脚本运行,而不需要签署者是受信任的。这意味着你可以运行自己编写的未签名的脚本,但不能运行其他人编写的未签名脚本。因此选择RemoteSigned就ok了

Unrestricted 策略允许在本地计算机上运行任何脚本,包括未签名的脚本。这是一种不安全的策略,因为它可能允许恶意脚本运行并损害系统。因此,建议只在必要的情况下使用 Unrestricted 策略,并在使用后立即将其还原为更安全的策略

到这里问题就解决了,npm及其运行脚本的命令都可以运行了

拓展知识

    1. 检查 PATH 环境变量命令

    在终端和 cmd 中分别检查 PATH 环境变量,确认 npm 的路径是否包含在内。你可以使用以下命令:

    • 在 cmd 中:echo %PATH%
    • 在 PowerShell 中:$Env:PATH
    • 在 Git Bash 或其他 Unix-like shell 中:echo $PATH
    1. Set-ExecutionPolicy RemoteSigned 后面可跟其他属性
  • 例如::Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

Scope 参数允许你指定更改执行策略的范围。在 PowerShell 中,有三个可用的 Scope 值:

  • MachinePolicy:更改计算机级别的执行策略。这会影响这台计算机上所有用户和所有 PowerShell 会话中运行的脚本。
  • UserPolicy:更改用户级别的执行策略。这会影响这个用户在这台计算机上所有 PowerShell 会话中运行的脚本。
  • CurrentUser:更改当前用户的执行策略。这仅会影响当前用户在当前 PowerShell 会话中运行的脚本。