Mac VS Code/Cursor 终端 pnpm 命令找不到的解决方案

19 阅读2分钟

Mac VS Code/Cursor 终端 pnpm 命令找不到解决方案

最近在 Mac 上搭建 Vue3 开发环境,遇到了一个问题:系统自带的 zsh 终端能正常运行 pnpm 命令,但 VS Code 和 Cursor 编辑器的内置终端,始终提示「pnpm: command not found」

期间尝试了网上多种方案,甚至按照教程修改了编辑器终端配置,却始终无效,最后误打误撞通过 nvm 切换 Node 版本,成功让 pnpm 命令在所有终端生效。结合自己的踩坑经历,整理出这篇完整解决方案,帮有同样问题的朋友少走弯路。

一、问题复现(精准对号入座)

  1. 我是通过 brow install pnpm命令安装的 pnpm(系统终端运行 pnpm -v 能正常显示版本号);
  2. 打开 VS Code 或 Cursor 编辑器,内置终端输入pnpm -v,直接报错:bash: pnpm: command not found
  3. 系统终端(zsh)一切正常,编辑器终端无论怎么重启、重新打开,问题始终存在;
  4. 前期尝试修改编辑器终端配置、执行 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 命令彻底生效,问题解决!