前面一篇把 workspace 这层讲清楚以后,仓库里的本地包已经能互相引用了。
到了这里,新的问题也会跟着冒出来。
如果一个仓库里已经有 apps/web、apps/api,还有 packages/shared、packages/ui 这样的共享包,那开发时到底该怎么启动,构建时到底该怎么安排顺序,lint 和 test 又该由谁来统一调度。
这时候你就会开始碰到 Turborepo。
它接手的不是包和包之间的引用关系,那一层已经由 workspace 处理了。它接手的是另一件事:这些包已经存在以后,日常开发和构建里的任务怎么一起跑。