出现了
|
|
这个错误信息 无法加载文件 D:\develop\nodejs\pnpm.ps1,因为在此系统上禁止运行脚本。
表明你的 PowerShell 执行策略阻止了 pnpm 脚本的运行。这是 Windows 系统为了安全而设置的默认策略。
要解决这个问题,你需要修改 PowerShell 的执行策略。推荐的策略是 RemoteSigned
,它允许你本地创建的脚本运行,但会要求从网上下载的脚本必须经过数字签名。
解决方案步骤:
-
以管理员身份打开 PowerShell。
- 在 Windows 搜索栏中输入 “PowerShell”。
- 在搜索结果中找到 “Windows PowerShell”,然后右键点击它,选择 “以管理员身份运行”。
-
检查当前的执行策略(可选但推荐):
- 在 PowerShell 窗口中输入以下命令并按 Enter:
1
Get-ExecutionPolicy
- 这会显示当前的执行策略,很可能是
Restricted
(受限)或AllSigned
。
- 在 PowerShell 窗口中输入以下命令并按 Enter:
-
设置新的执行策略:
- 在 PowerShell 窗口中输入以下命令并按 Enter:
1
Set-ExecutionPolicy RemoteSigned
- 系统会提示你确认更改。输入
Y
(表示 Yes) 并按 Enter。
- 在 PowerShell 窗口中输入以下命令并按 Enter:
-
验证策略是否已更改(可选但推荐):
- 再次输入
Get-ExecutionPolicy
并按 Enter。 - 确认显示的是
RemoteSigned
。
- 再次输入
-
关闭管理员 PowerShell 窗口。
-
回到你的开发终端(Git Bash、CMD、VS Code Terminal 等),重新运行你的 pnpm 命令:
1
pnpm run dev
现在,pnpm
应该能够正常运行了。
解释和注意事项:
RemoteSigned
策略: 这是一个比较平衡的策略。它允许你在本地编写或通过安装器(如 Node.js 或 pnpm)生成的脚本运行,同时仍然对从互联网下载的脚本保持一定的安全性(要求签名)。- 其他策略:
Restricted
(默认):不允许任何脚本运行。Unrestricted
:允许所有脚本运行,但会警告从互联网下载的脚本。安全性最低。AllSigned
:只允许由受信任的发布者签名的脚本运行。
- 安全性考虑: 更改执行策略会降低系统的安全性,但对于开发者来说,为了运行开发工具,这是必要的。
RemoteSigned
是一个常用且相对安全的折衷方案。 - 如果只想针对当前用户生效:
你也可以使用
-Scope CurrentUser
参数,这样只会影响当前登录的用户,而不是整个系统:但通常情况下,为了方便,开发者会选择影响全局。1
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser