turborepo
适用于 JavaScript/TypeScript monorepo 的高性能构建系统。针对并行任务执行、远程缓存与依赖图分析进行了优化。
简介
Turborepo 是一个基于 Rust 的先进构建系统,旨在优化大型 JavaScript 和 TypeScript monorepo 中的开发工作流程与 CI/CD 管道。通过利用智能依赖图分析,它能实现任务的并行执行,并大幅减少通过本地与远程缓存机制构建的时间。该工具专为管理复杂项目结构的开发人员设计,确保多个应用程序与共享包能够在协同工作中保持高性能。无论是处理代码检查、测试还是资产构建,Turborepo 都能确保仅处理必要的代码,从而在代码库增长时维持极高的开发速度。
-
使用文件系统与远程缓存的增量构建,跳过未更改代码的冗余工作。
-
由自定义任务依赖图驱动的并行任务执行,严格遵循内部包之间的关系。
-
内置 monorepo 边界强制执行功能,允许团队根据预定义标签限制包之间的导入关系。
-
通过环境变量哈希、受影响文件检测以及与 Vercel 远程缓存的集成,实现原生的 CI/CD 优化。
-
用于可视化依赖图与监控任务执行性能的实时开发工具。
-
支持在 turbo.json 中定义复杂的任务管线,实现跨工作区的构建、Lint 和测试脚本的无缝编排。
-
务必优先在 package.json 中设置包专属任务,而非根目录脚本,以最大化 Turborepo 的并行化能力。
-
在 package.json 与 CI 脚本中使用 'turbo run <task>' 以确保行为一致,仅将 'turbo <task>' 用于终端命令行。
-
利用 --affected 标志仅针对受最近代码更改影响的包执行目标构建与测试,而非重建整个仓库。
-
在 turbo.json 中配置严格的环境变量过滤,防止不稳定或非确定性的输入导致缓存污染。
-
确保所有构建输出都在任务配置中明确定义,以便引擎能正确地从缓存中恢复它们。
-
使用 --summarize 或 --dry 标志监控缓存命中率并调试哈希冲突,以优化您的缓存输入配置。
仓库统计
- Star 数
- 30,289
- Fork 数
- 2,316
- Open Issue 数
- 34
- 主要语言
- Rust
- 默认分支
- main
- 同步状态
- 空闲
- 最近同步时间
- 2026年5月3日 04:58