解决问题:在cmd中能查看到pnpm版本,在vscode终端中却报错
在vscode中
- 安装pnpm,成功:npm install -g pnpm
- 执行 pnpm -v,发现报错(power shell模式下权限限制,默认执行策略阻止脚本运行)
- 执行 where pnpm,没有输出(说明pnpm不在PATH里,需要重新安装或者手动添加路径)
在cmd中,一切正常
以下是排查过程和解决方法:
1、检查vscode终端的shell类型
默认使用的终端可能是power shell / git bash(我的是powershell),而不是cmd,path环境变量可能不同
在vscode终端运行 $env:Path //power shell 或者 echo $PATH //git bash
在cmd运行 echo %PATH%
对比PATH,查看pnpm的路径是否缺失(结果:不缺失)
解决方法一:切换shell类型
按 ctrl + shift + P,输入 Terminal:Select Default Profile
选择Command Prompt(不是powershell或git bash)
输入exit关闭并重新打开终端(结果:成功解决了)
cmd是Windows原生终端,环境变量path直接继承自系统变量,如果
pnpm
是通过npm install -g pnpm
安装的,通常能在 CMD 中直接运行(因为 npm 的全局路径默认在系统PATH
里
解决方法二: 解决power shell类型的权限限制
如果不想切换终端类型,还是要power shell,可以
输入Get-ExecutionPolicy -List 命令,查看当前用户的执行策略
修改执行策略:将当前用户的执行策略修改为 RemoteSigned,允许运行本地脚本
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
验证:执行pnpm -v,可查看到版本(结果:成功解决了)