必须用根目录打开Monorepo项目并重启TS Server,否则VSCode无法识别完整结构、turbo命令不可用、Ctrl+Click跳转本地包失败;所有配置均以此为前提。

npm init -y 不能直接用于 Monorepo 根目录
直接在空文件夹里敲 npm init -y 生成的 package.json 缺少 "private": true 和 workspace 配置,后续装 pnpm/turbo/lerna 会失败或行为异常。
- Monorepo 根项目必须设为私有:手动加
"private": true字段,否则pnpm publish或lerna publish可能误发根包 - 不要用
npm init生成 workspace 文件——pnpm-workspace.yaml、turbo.json、lerna.json都得手写或由对应 CLI 初始化 - 推荐先选包管理器再初始化:比如用
pnpm init -y(需 pnpm ≥ 8.0)或npx create-turbo@latest,它们会自动写对package.json+ workspace 配置
必须用根目录打开 VSCode,且确保 workspace 文件存在
VSCode 不识别 “Monorepo” 概念,只认你打开的路径里有没有 pnpm-workspace.yaml(或 turbo.json、lerna.json)。开错路径,所有跨包跳转、类型提示、任务执行都会断。
- 在终端进入目标根目录(如
D:\monorepo或/Users/me/monorepo),再运行code .启动 VSCode - 确认资源管理器顶部显示的是
文件夹: /path/to/monorepo,不是文件夹: /path/to/monorepo/packages/ui - 如果已开错,关掉窗口,删掉当前工作区缓存(
.vscode文件夹可留,但别留*.code-workspace),重新code .
VSCode 终端找不到 pnpm/turbo/lerna 命令?别装全局,用 npx
command not found: pnpm 不是没装,是 VSCode 终端没加载 node_modules/.bin。全局安装风险高(版本冲突、权限问题),本地安装 + npx 才是 monorepo 安全做法。
- 先确保根目录已运行
pnpm add -D pnpm(或turbo、lerna),它们会出现在devDependencies里 - 所有终端命令改用
npx pnpm ...、npx turbo run build、npx lerna bootstrap - VSCode 的
tasks.json中command字段也写npx pnpm install,并显式指定"options": { "cwd": "${workspaceFolder}" }
tsconfig 配置不生效?references + composite + 重启 TS Server 是硬要求
即使 tsconfig.json 里写了 "references",VSCode 也不会自动启用跨包类型检查——TypeScript Server 默认把每个 tsconfig.json 当独立项目。
- 每个子包的
tsconfig.json必须含"composite": true和"extends": "../tsconfig.base.json" -
tsconfig.base.json放根目录,里面配好"compilerOptions.baseUrl"和"paths"(如"@myapp/*": ["packages/*/src"]) - 改完配置或重装依赖后,必须手动触发
Ctrl+Shift+P→Restart TS server,否则 Ctrl+Click 仍跳不到源码
真正卡住人的从来不是命令记不住,而是 VSCode 没意识到“你现在在一个 monorepo 里”——它需要明确的路径、明确的配置文件、明确的重启信号,三者缺一不可。


















