问题报错
项目中使用pnpm的时候
报错原因
windows系统某些版本现用执行策略是 Restricted(默认设置),默认就是不能运行脚本,所以必须要手动更改系统执行策略,当然,不止pnpm,其他运行脚本的工具也可能会出现这个问题。
解决方案
更改执行策略
get-executionpolicy查看当前执行策略
可选择的执行策略:
- Restricted: 脚本不能运行(默认设置)
- RemoteSigned: 在本地创建的脚本可以运行,网上下载的脚本无法运行
- AllSigned: 仅当脚本由受信任的发布者签名时才能运行
- Unrestricted: 允许所有脚本运行
- Bypass:对脚本的执行不设任何的限制,任何脚本都可以执行,并且不会有安全性提示。
- Undefined:表示没有设置脚本策略。当然此时会发生继承或应用默认的脚本策略。
- -ExecutionPolicy PolicyName -Scope:Scope为执行策略作用域,可以获取或设置指定作用域区间的执行策略,比如当前用户(CurrentUser)、当前主机(LocalMachine)、当前进程等。如
Get-ExecutionPolicy -Scope CurrentUser获取当前用户的执行策略;如Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine设置当前主机的执行策略为RemoteSigned
所以我们选择一个适合我们的执行策略设置一下就能解决这个问题,使用管理员身份打开Powershell,输入set-executionpolicy remotesigned后再输入Y确认更改
输入
pnpm -v,问题得到解决