pnpm : 无法加载文件 D:\Program Files\nvm_nodejs\pnpm.ps1,因为在此系统上禁止运行脚本。
前提
已经通过npm install -g pnpm
,命令安装了pnpm
。
问题
- 在
cmd
窗口中输入pnpm -v
能够打印9.6.0
版本信息 - 在
vscode
终端中输入pnpm -v
, 却出现以下提示:
pnpm : 无法加载文件 D:\Program Files\nvm_nodejs\pnpm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.co
m/fwlink/?LinkID=135170 中的 about_Execution_Policies。
所在位置 行:1 字符: 1
+ pnpm -v
+ ~~~~
+ CategoryInfo : SecurityError: (:) [],PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
附图:
原因
- 使用
Get-ExecutionPolicy
获取当前 PowerShell 会话的有效执行策略。
# 获取有效的执行策略
Get-ExecutionPolicy
- Windows 客户端计算机的默认执行策略是
Restricted
,它不允许执行脚本,仅允许单个命令,并阻止运行所有脚本文件,包括格式和配置文件(.ps1xml)
、模块脚本文件(.psm1)
和 PowerShell 配置文件(.ps1)
。
解决办法-1
- 当前策略是
Restricted
时,可以使用如下命令修改
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope Process
- 当前策略是
AllSigned
或RemoteSigned
时可以使用下面命令修改
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope Process -Force
解决办法-2
如果你关闭
vscode
终端再创建终端后又不行,可以尝试:
- 以管理员身份运行
vscode
- 在
vscode
终端中输入get-executionpolicy
- 如果返回的状态是
Restricted
,则说明是受限制的,脚本不能运行(默认状态),此时需要更改设置,输入# 更改为允许本地创建的脚本运行 set-executionpolicy RemoteSigned