windowOS 环境下,pnpm 首次执行指令时控制台提示脚本权限问题
通过 npm install pnpm -g 安装 pnpm 后,通过 pnpm --version 检查是否成功安装时,得到异常:
$ pnpm : 无法加载文件 C:\Git\node_global\pnpm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。
分析
1. 问题原因
查看命令行信息与提示链接,可知是由于Power Shell的执行策略限制了脚本的执行,导致 pnpm.ps1 执行失败。
2. 策略说明
使用以下指令可以查看到当前脚本执行的策略:
$ Get-ExecutionPolicy
- Restricted:默认策略,禁止运行任何脚本,除非明确允许。
- AllSigned:只允许运行经由数字签名并由受信任的发布者签名的脚本。
- RemoteSigned:允许运行未经签名的脚本,但是必须由受信任的发布者在本地计算机上签名。
- Unrestricted:允许运行所有脚本。
解决
根据 策略说明 中的四个策略信息,一般推荐使用 RemoteSigned。
1. 以管理员权限打开命令行工具 Windows PowerShell
2. 修改策略
输入以下指令
$ Set-ExecutionPolicy RemoteSigned
执行指令后,需要再次确认指令修改,按提示输入 Y。
至此,可以正常使用 pnpm 工具了。