pnpm : 无法加载文件 C:\\nvm4w\\nodejs\\pnpm.ps1
pnpm : 无法加载文件 C:\nvm4w\nodejs\pnpm.ps1,因为在此系统上禁止运行脚本。
你需要更改 PowerShell 的执行策略。以下是几种常见的方法,按限制从多到少的顺序列出。请选择最符合你安全需求的方案。
- RemoteSigned (推荐): 这通常是一个较好的平衡点。它允许在本地创建的脚本运行,但从互联网下载的脚本必须由受信任的发布者签名。
-
以管理员身份运行 PowerShell。(搜索 "PowerShell",右键单击,然后选择 "以管理员身份运行")。
-
运行以下命令: PowerShell
Set-ExecutionPolicy RemoteSigned
-
系统可能会提示你确认更改。输入
Y
然后按 Enter。
-
- Unrestricted: 这允许所有脚本运行,无论它们是否已签名或来自何处。这种方式安全性较低,应谨慎使用。
-
以管理员身份运行 PowerShell。
-
运行以下命令: PowerShell
Set-ExecutionPolicy Unrestricted
-
如果出现提示,请输入
Y
并按 Enter 确认。
-
- Bypass (仅限当前会话): 这仅为当前的 PowerShell 会话更改策略。如果你不想更改全局策略,这是一个不错的选择。
-
打开 PowerShell(此操作不一定严格需要管理员权限,但可以避免其他权限问题)。
-
一种方法是直接在命令前指定执行策略来运行你的
pnpm
命令: PowerShellpowershell -ExecutionPolicy Bypass -File C:\nvm4w\nodejs\pnpm.ps1 i
或者,如果
pnpm
已经在你的 PATH 环境变量中,你也可以尝试先为当前进程设置策略: PowerShellSet-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 管理员。