vscode中yarn找不到命令,本质是环境链断裂:终端未继承系统path、powershell执行策略限制(需set-executionpolicy remotesigned)、或未用终端启动vscode(macos应code .,windows需管理员权限),须逐一校准终端、调试器、ts server三端环境。

VSCode 里依赖报红、npm install 卡住、yarn 找不到命令——这些问题几乎全出在环境链断裂上,不是插件没装好,而是 node、npm 或 yarn 在某个环节被“认错了”。修复的关键是分清三类运行时:终端、调试器、TypeScript Server,各自要对齐。
终端里 node 或 yarn 报 command not found
这不是 VSCode 没配 Node,而是它启动时没加载你 shell 的环境变量。系统终端能跑,VSCode 终端跑不了,说明 PATH 没继承进来。
- 先在系统终端(非 VSCode)执行
which node和which yarn,记下路径,比如/Users/xxx/.nvm/versions/node/v18.20.4/bin/node - macOS 用户别从 Dock 启动 VSCode,改用终端执行
code .;Windows 用户若用 PowerShell,需先运行Set-ExecutionPolicy RemoteSigned -Scope CurrentUser - 如果仍不行,在 VSCode 设置中搜
terminal.integrated.env.osx(或.windows),手动补 PATH,但注意不要覆盖原有值,例如:"PATH": "/opt/homebrew/bin:/usr/local/bin:${env:PATH}"
npm install 卡在 fetchMetadata 或 extract
默认 registry registry.npmjs.org 在国内解析慢或 TLS 握手失败,不是网速问题,是源本身不可达。
使用一条命令部署ProbeChain Rydberg测试网代理节点。自动注册为Agent(NodeType=1),免gas,支持macOS/Linux/Windows。触发词:/r
- 执行
npm config get registry,确认是否为https://registry.npmmirror.com/ - 如果不是,立刻执行
npm config set registry https://registry.npmmirror.com/(注意末尾斜杠) - 然后清缓存:
npm cache clean --force,再删掉node_modules和package-lock.json,重跑npm install - 别用
cnpm—— 它生成的package-lock.json与 npm 不兼容,后续会报Invalid package-lock.json
TypeScript 报 “无法找到模块” 但项目能正常运行
这是 TS Server 没识别到 yarn 的模块链接结构,尤其在启用 PnP(.pnp.cjs)后极常见,和终端、任务完全无关。
- 必须用 VSCode 打开整个 workspace 根目录(即含
yarn.lock或.yarnrc.yml的文件夹),不能只开子包目录 - 看状态栏右下角:要是显示
TypeScript SDK: Project version,说明作用域错了,得改成Workspace version - 确认已运行
yarn set version stable生成.pnp.cjs,且.yarnrc.yml中有nodeLinker: pnp - 改完配置后,务必手动执行
Cmd/Ctrl+Shift+P → Restart TS server
调试时 Cannot find module 或断点灰掉
launch.json 的 runtimeExecutable 只控制调试进程,不影响插件主机(Extension Host)——而原生模块(如 sqlite3)实际跑在 VSCode 内置 Electron 的 Node 上,版本必须严格匹配。
- 查 VSCode 版本对应的 Node 版本:VS Code 1.90+ = Node.js 22.4.0 + napi_build_version=9
- 重编译原生模块时,必须指定完整参数:
npm rebuild --napi-build-version=9 --runtime=electron --target=34.0.0 - 删掉插件目录下的
node_modules/.pnpm和out/,否则旧缓存优先加载 - 确保
launch.json中的program指向真实存在的 JS 文件(如${workspaceFolder}/out/extension.js),而不是.ts源码
最容易被跳过的,是三个环节必须全部对齐:终端 PATH、tasks 自动生成逻辑、TS Server 的 workspace 识别。少一个,就会降级回 npm、卡在 fetchMetadata,或者类型永远标红却运行正常。










