启动项目时报错==》npm : 无法加载文件 D:\SoftWare\nvm\nodejs\npm.ps1,因为在此系统上禁止运行脚本

2,385 阅读3分钟

启动项目时报错 npm : 无法加载文件 D:\SoftWare\nvm\nodejs\npm.ps1,因为在此系统上禁止运行脚本

image.png

首先判断是否是因为node版本和npm版本不匹配导致的, 如果是因为node版本和npm版本不匹配那么更换npm版本或node版本就可以了。

注:我是因为node和npm版本不匹配导致的 刚开始我的node版本为20.13.0,npm版本为6.14.13,后面我把node版本降低为14.17.3 就可以了。

要么可以尝试将npm运行包放至全局 nvm\node_global\node_modules路径下

如果确认不是因为node和npm版本不匹配导致的,那就接下来可以判断是否是没有权限。

‌首先以管理员身份运行PowerShell‌:以管理员身份运行PowerShell可以解决权限问题。右键点击PowerShell图标,选择“以管理员身份运行”,然后再次尝试运行npm命令‌。

执行命令1(检查状态):

get-ExecutionPolicy

结果:

Restricted (表示是受限制的,所以状态是禁止的)

执行命令2(添加权限):

Set-ExecutionPolicy -Scope CurrentUser

提供新参数值时输入:RemoteSigned

image.png

执行命令3(验证状态): get-ExecutionPolicy

结果: RemoteSigned

之后启动项目看看是否可以成功,如果成功那么就是因为没有权限导致的。

附: PowerShell 执行策略

这些策略仅在 Windows 平台上执行。 PowerShell 执行策略如下:

  • AllSigned

    • 脚本可以运行。
    • 要求所有脚本和配置文件都由受信任的发布者签名,包括在本地计算机上编写的脚本。
    • 在运行来自尚未分类为可信或不可信的发布者的脚本之前会提示你。
    • 存在运行已签名的恶意脚本的风险。
  • Bypass

    • 不阻止任何操作,并且没有任何警告或提示。
    • 此执行策略专为将 PowerShell 脚本内置到较大应用程序中的配置,或以 PowerShell 为具有自己的安全模型的程序的基础的配置而设计。
  • Default

    • 设置默认执行策略。
    • Restricted(适用于 Windows 客户端)。
    • RemoteSigned(适用于 Windows 服务器)。
  • RemoteSigned

    • Windows 服务器计算机的默认执行策略。
    • 脚本可以运行。
    • 需要受信任的发布者对从 Internet 下载的脚本和配置文件(包括电子邮件和即时消息程序)的数字签名。
    • 在本地计算机上编写且不是从 Internet 下载的脚本不需要数字签名。
    • 如果脚本已解除阻止(例如通过使用 Unblock-File cmdlet),则运行从 Internet 下载且未签名的脚本。
    • 存在运行来自 Internet 以外来源的未签名脚本以及可能存在恶意的签名脚本的风险。
  • Restricted

    • Windows 客户端计算机的默认执行策略。
    • 允许单个命令,但不允许脚本。
    • 阻止运行所有脚本文件,包括格式和配置文件 (.ps1xml)、模块脚本文件 (.psm1) 和 PowerShell 配置文件 (.ps1)。
  • Undefined

    • 当前作用域内没有设置执行策略。
    • 如果所有作用域内的执行策略均为 Undefined,则对于 Windows 客户端,有效执行策略为 Restricted;对于 Windows Server,有效执行策略为 RemoteSigned
  • Unrestricted

    • 非 Windows 计算机的默认执行策略,无法更改。
    • 未签名的脚本可以运行。 存在运行恶意脚本的风险。
    • 在运行非来自本地 Intranet 区域的脚本和配置文件之前警告用户。

在不区分通用命名约定 (UNC) 路径和 Internet 路径的系统上,可能不允许使 用 RemoteSigned 执行策略运行由 UNC 路径标识的脚本。

系统的执行策略默认设置为“Restricted”,这意味着系统限制执行任何脚本。通过修改执行策略,可以允许运行本地创建的脚本,但需要谨慎操作,确保不会引入安全风险‌