pnpm : 无法加载文件 C:\nvm4w\nodejs\pnpm.ps1,因为在此系统上禁止运行脚本。

你需要更改 PowerShell 的执行策略。以下是几种常见的方法,按限制从多到少的顺序列出。请选择最符合你安全需求的方案。

  1. RemoteSigned (推荐): 这通常是一个较好的平衡点。它允许在本地创建的脚本运行,但从互联网下载的脚本必须由受信任的发布者签名。
    • 以管理员身份运行 PowerShell。(搜索 "PowerShell",右键单击,然后选择 "以管理员身份运行")。

    • 运行以下命令: PowerShell

      Set-ExecutionPolicy RemoteSigned
      
    • 系统可能会提示你确认更改。输入 Y 然后按 Enter。

  2. Unrestricted: 这允许所有脚本运行,无论它们是否已签名或来自何处。这种方式安全性较低,应谨慎使用。
    • 以管理员身份运行 PowerShell

    • 运行以下命令: PowerShell

      Set-ExecutionPolicy Unrestricted
      
    • 如果出现提示,请输入 Y 并按 Enter 确认。

  3. Bypass (仅限当前会话): 这仅为当前的 PowerShell 会话更改策略。如果你不想更改全局策略,这是一个不错的选择。
    • 打开 PowerShell(此操作不一定严格需要管理员权限,但可以避免其他权限问题)。

    • 一种方法是直接在命令前指定执行策略来运行你的 pnpm 命令: PowerShell

      powershell -ExecutionPolicy Bypass -File C:\nvm4w\nodejs\pnpm.ps1 i
      

      或者,如果 pnpm 已经在你的 PATH 环境变量中,你也可以尝试先为当前进程设置策略: PowerShell

      Set-ExecutionPolicy Bypass -Scope Process
      

      然后在同一个 PowerShell 窗口中运行你的 pnpm i 命令。-Scope Process 参数表示此更改仅应用于当前的 PowerShell 进程,不会被持久化。

重要提示

  • 管理员权限: 通常,你需要以管理员身份运行 PowerShell才能更改全局执行策略或针对 CurrentUser 的策略。

  • 安全影响: 在设置限制较少的策略(如 Unrestricted)之前,请了解其安全风险。如果你需要运行本地脚本或已签名的远程脚本,RemoteSigned 通常是更安全的选择。

  • 检查当前策略: 你可以通过运行以下命令查看当前的执行策略: PowerShell

    Get-ExecutionPolicy
    
  • 作用域 (Scope): 执行策略可以为不同的作用域设置(例如 CurrentUser, LocalMachine)。如果在以管理员身份运行时,Set-ExecutionPolicy 命令没有指定 -Scope 参数,则通常默认为 LocalMachine

更改策略后,请再次尝试运行你的 pnpm i 命令。

如果你在公司或受管理的环境中,可能存在阻止你更改执行策略的组策略。在这种情况下,你可能需要联系你的 IT 管理员。

文章作者: oohmygosh
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Blog
喜欢就支持一下吧