Mac VS Code/Cursor 终端 pnpm 命令找不到解决方案
最近在 Mac 上搭建 Vue3 开发环境,遇到了一个问题:系统自带的 zsh 终端能正常运行 pnpm 命令,但 VS Code 和 Cursor 编辑器的内置终端,始终提示「pnpm: command not found」。
期间尝试了网上多种方案,甚至按照教程修改了编辑器终端配置,却始终无效,最后误打误撞通过 nvm 切换 Node 版本,成功让 pnpm 命令在所有终端生效。结合自己的踩坑经历,整理出这篇完整解决方案,帮有同样问题的朋友少走弯路。
一、问题复现(精准对号入座)
- 我是通过
brow install pnpm命令安装的 pnpm(系统终端运行pnpm -v能正常显示版本号); - 打开 VS Code 或 Cursor 编辑器,内置终端输入
pnpm -v,直接报错:bash: pnpm: command not found; - 系统终端(zsh)一切正常,编辑器终端无论怎么重启、重新打开,问题始终存在;
- 前期尝试修改编辑器终端配置、执行
source ~/.zshrc等操作,均未解决问题。
二、无效尝试(对于某些小伙伴可能会有效)
1. 执行 source 命令临时加载环境
在编辑器终端输入 source ~/.zshrc,执行后还是不行。
2. 修改 VS Code/Cursor 终端配置
按照教程修改了编辑器的 settings.json,将内置终端默认设置为 zsh,并添加环境变量加载命令,配置如下(亲测无效):
{
"terminal.integrated.profiles.osx": {
"zsh": {
"path": "/bin/zsh",
"args": ["-l", "-c", "source ~/.zshrc && exec zsh"]
}
},
"terminal.integrated.defaultProfile.osx": "zsh"
}
修改后重启编辑器,终端依然无法识别 pnpm 命令。
3. 配置环境变量到 .zprofile
执行命令 echo 'export PATH="$HOME/.nvm/versions/node/$(node -v | tr -d 'v')/bin:$PATH"' >> ~/.zprofile,将 nvm 和 pnpm 路径写入 .zprofile,执行 source ~/.zprofile 后,编辑器终端仍无法识别。
三、最终解决方案(nvm 切换 Node 版本,一键生效)
头大,所有常规方案都尝试了,后来我想是不是版本对不上导致的:自己是用 nvm 管理 Node 版本的,当前使用的 Node 版本可能和 pnpm 安装时的 Node 版本不匹配,于是尝试切换 Node 版本,万万没想到还真是【手动狗头】!
具体步骤:
1. 查看已安装的 Node 版本
在系统终端(zsh)输入以下命令,查看本地通过 nvm 安装的所有 Node 版本:
nvm ls
会显示类似如下内容(* 表示当前正在使用的版本):
v16.20.2
-> v20.10.2
2. 切换到其他已安装的 Node 版本
我当前使用的是 v16.20.2,尝试切换到 v20.20.2(或其他已安装的版本),命令如下:
nvm use 20.20.2
切换成功后,终端会提示:Now using node v20.20.2 (npm v10.8.2)。
3. 重新打开编辑器或直接在终端输入命令,测试 pnpm
关闭 VS Code/Cursor 所有窗口,重新打开,内置终端输入:
pnpm -v
此时,终端会正常显示 pnpm 版本号,pnpm 命令彻底生效,问题解决!