@
crysislinux 没有用 nx ,的确限制很大。
现在已经落地使用的是 turborepo ,灵活落地快,配置很简单(几乎不需要啥配置)。
turborepo 做多任务(构建,开发等)管理,它会处理任务之间的依赖的,同时利用缓存,减少你总任务的处理时间。
比如你运行 turbo run build lint test --filter="{./packages/*}[HEAD~0]" 他会运行所有 packages 目录下的,git 上有更改的包的 build lint test 任务。在运行 build 任务的时候,如果你在 turbo.json 配置文件中声明了 build 任务依赖处理,那么它会计算这个包的依赖关系,先去构建这个包所依赖的包的 build 任务。
整个前端项目的基础设施实现利用了 turborepo, changeset, pnpm 来完成的。pnpm 方便做 workspace 的管理,以及在发包的时候,可以运行 pnpm publish -r --report-json 来发布那些有新的版本还没有发布过的包,同时生成 json 文件报告。通过 changeset 来管理包的版本,更新更个 package 文件上的版本。