pnpm命令未找到的根本原因是PATH未包含其安装路径,需先在系统终端运行which pnpm确认安装,再根据平台将对应bin目录加入shell配置文件并source,或启用Corepack。

终端里输入 pnpm 报 command not found
这不是 VSCode 设置问题,而是它内置终端没加载你的 shell 初始化文件(比如 ~/.zshrc 或 $PROFILE),PATH 里压根没有 pnpm 的安装路径。
先在系统终端(不是 VSCode 里)运行 which pnpm,确认已全局安装;如果没输出,执行:npm install -g pnpm。
- macOS/Linux:检查
~/.zshrc是否包含类似export PATH="$HOME/.local/share/pnpm:$PATH"的行(路径以which pnpm输出为准) - Windows PowerShell:先运行
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser,再在$PROFILE中添加Set-Alias -Name pnpm -Value "$env:USERPROFILE\AppData\Local\pnpm\pnpm.ps1" - VSCode 启动方式很关键:从 Dock 或开始菜单打开,常拿不到 shell 环境;必须用命令行执行
code .才能继承完整 PATH
tasks.json 里写 "command": "npm" 却想跑 pnpm
VSCode 的任务系统完全不读取 shell alias 或 profile。"command": "npm" 就是字面意思——它会去 PATH 里找名为 npm 的可执行文件,不会自动替换成 pnpm。
使用一条命令部署ProbeChain Rydberg测试网代理节点。自动注册为Agent(NodeType=1),免gas,支持macOS/Linux/Windows。触发词:/r
唯一可靠做法是显式写死:"command": "pnpm",所有 args 保持不变,pnpm 完全兼容 npm script 语义。
- 旧版
tasks.json若硬编码了npm install,建议删掉后按Cmd/Ctrl+Shift+P → Tasks: Configure Task → Create tasks from package.json重生成 - 若项目用了
corepack,确保已执行corepack enable,且package.json中packageManager字段声明了版本,例如"pnpm@8.15.0"
TypeScript 跳转失败、import 报红但代码能运行
Node.js 运行时靠 pnpm patch 过的 resolver,能正常加载;但 VSCode 的 TypeScript Server 只看 node_modules/.pnpm 下的硬链接结构,容易漏掉路径。
- 必须用 VSCode 打开整个 workspace 根目录(即含
pnpm-workspace.yaml和pnpm-lock.yaml的文件夹),不能只开packages/ui子目录 - 检查状态栏右下角是否显示
TypeScript SDK: Workspace version;如果不是,说明 TS Server 没加载项目级配置 - 修改
tsconfig.json或切换包管理器后,务必手动执行Cmd/Ctrl+Shift+P → TypeScript: Restart TS server - 关闭
typescript.preferences.includePackageJsonAutoImports设置项,它会绕过pnpm的符号链接逻辑,错误推导依赖
调试时断点不触发或环境变量丢失
直接在 launch.json 里写 "program": "node_modules/.bin/jest" 这类路径,大概率会触发 npm 的 wrapper 脚本,而非 pnpm 安装的真实二进制,导致调试链路断裂。
- 调试脚本应统一走
pnpm exec入口,例如:"program": "${workspaceFolder}/node_modules/.pnpm/jest@29.7.0/node_modules/jest/bin/jest.js"不可靠,别硬编码路径 - 推荐写法:
"runtimeExecutable": "pnpm", "args": ["exec", "jest"],让pnpm exec做环境隔离和二进制定位 - 如果项目有
pnpm exec不识别的 CLI(比如某些老工具),需确认其是否支持--no-registry或--ignore-scripts等参数,避免被 wrapper 干预

















