vscode配置yarn成功需满足三条件:终端能执行yarn --version、任务默认调用yarn而非npm、ts服务正确解析yarn模块路径;任一缺失均会导致报错或降级回npm。

VSCode 本身不“配置 Yarn”,它只是调用你系统里已安装的 yarn。所谓“配置成功”,本质是让三个地方都认得并正确调用它:终端能执行 yarn --version、任务(Task)跑的是 yarn 而不是 npm、TypeScript 语言服务能解析 yarn 管理的模块路径。漏掉任一环,都会报错或降级回 npm。
终端里 yarn: command not found 怎么办
这不是 VSCode 设置错了,而是它的内置终端没加载你的 shell 初始化文件(比如 ~/.zshrc 或 $PROFILE),PATH 里压根没有 yarn 的路径。
- 先在系统终端(非 VSCode)里运行
which yarn,记下输出(例如/opt/homebrew/bin/yarn) - 打开 VSCode 终端,再执行
which yarn—— 如果为空,就确认是环境变量没继承 - macOS 用户别从 Dock 启动 VSCode,改用命令行
code .;Windows 用户若用 Git Bash,需在设置里把terminal.integrated.defaultProfile.windows设为Git Bash - 兜底方案:在 VSCode 设置里搜
terminal.integrated.env,手动补 PATH,例如:"terminal.integrated.env.osx": {"PATH": "/opt/homebrew/bin:/usr/local/bin:${env:PATH}"}
Tasks: Run Task 为什么还是跑 npm install
VSCode 的任务系统不读 alias,也不猜你装了什么,它只按 tasks.json 里写的字面量执行。所谓“默认用 yarn”,其实是靠 package.json 声明 + 自动生成实现的。
- 确保项目根目录
package.json有"packageManager": "yarn@4.0.0"(Yarn 3.1+ 支持) - 删掉旧的
.vscode/tasks.json(如果存在),避免硬编码了npm install - 按
Cmd/Ctrl+Shift+P→ 输入Tasks: Configure Task→ 选Create tasks from package.json - 生成的任务里必须是
"command": "yarn"和"args": ["build"],而不是"npm run build"
TypeScript 报 “无法找到模块” 却能正常运行
这和终端、任务都无关,是 TS Server 没正确识别 yarn 的链接结构,尤其是启用 PnP(.pnp.cjs)后更常见。
- 必须用 VSCode 打开整个 workspace 根目录(即含
.yarnrc.yml或yarn.lock的文件夹),不能只开子包目录 - 检查状态栏右下角是否显示
TypeScript SDK: Workspace version;如果是Project version,说明识别错了作用域 - 确认已运行
yarn set version stable生成.pnp.cjs,且.yarnrc.yml中有nodeLinker: pnp - 修改
tsconfig.json或切换包管理器后,务必手动执行Cmd/Ctrl+Shift+P→TypeScript: Restart TS server
PnP 模式下最易被忽略的一点:TS Server 不会自动 reload .pnp.cjs,哪怕你改了 .yarnrc.yml 或重新 yarn install,也得手动重启 TS Server——否则所有类型提示和跳转都会失效。











