前面几篇把 workspace 这层讲清楚了。
仓库里的本地包已经能互相引用,依赖管理和共享边界也有了基本方向。
到了这里,一个新的问题会很自然地出现。
如果仓库里已经有 apps/web、apps/api,还有 packages/shared、packages/ui 这样的共享包,那开发时到底该怎么启动,构建时谁应该先跑谁应该后跑,lint 和 test 又该由谁来统一调度。
这时候就该看 Turborepo 了。它接手的不是包和包之间的引用关系——那一层已经由 workspace 处理了。它接手的是另一件事:这些包已经存在以后,日常的任务怎么一起跑。