项目场景:`
项目统一使用pnpm命令
问题描述
安装了pnpm再次使用报错pnpm : 无法加载文件 E:\tools\nodejs\pnpm.ps1,因为在此系统上禁止运行脚本
pnpm : 无法加载文件 E:\tools\nodejs\pnpm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。
所在位置 行:1 字符: 1
+ pnpm dev
+ ~~~~
+ CategoryInfo : SecurityError: (:) [],PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
原因分析:
遇到这个问题是因为PowerShell的执行策略设置为Restricted,这会阻止任何脚本的运行,包括pnpm.ps1。。
解决方案:
你可以通过以下步骤来解决这个问题:
1、以管理员权限打开PowerShell: 使用快捷键 Win + X,然后选择“Windows PowerShell (管理员)”或“Windows PowerShell”并右键选择“以管理员身份运行”。
2、更改执行策略: 在打开的PowerShell窗口中,输入以下命令来更改执行策略:
Set-ExecutionPolicy RemoteSigned
这个命令会允许来自可信任发布者的本地脚本和所有远程脚本的运行。
3、确认更改: 输入上述命令后,PowerShell会提示你是否确认更改执行策略,输入 Y 或 Yes 并按回车键确认。
4、验证执行策略: 你可以使用以下命令来检查执行策略是否已经更改:
Get-ExecutionPolicy
如果一切正常,输出应该是 RemoteSigned。
完成这些步骤后,你应该能够重新启动你的命令行界面或VSCode的集成终端,并且pnpm应该可以正常工作了。
请注意,更改执行策略可能会影响系统的安全性,因此确保只从可信任的来源运行脚本。如果你只需要临时更改策略,可以在命令前加上 -Scope Process 参数,这样更改仅对当前进程有效。
Set-ExecutionPolicy RemoteSigned -Scope Process