Turborepo 单仓多包构建与缓存最佳实践概述Turborepo 通过声明式管线与本地/远程缓存实现大规模单仓项目的高效构建与测试。本文以稳定配置与命令示例说明如何搭建可维护的工程体系。工作区与依赖管理// package.json(片段) { "private": true, "packageManager": "pnpm@9", "workspaces": ["apps/*", "packages/*"] } 建议使用 pnpm 管理多包依赖,减少重复安装与锁文件体积。管线配置与任务编排// turbo.json { "$schema": "https://turbo.build/schema.json", "pipeline": { "build": { "dependsOn": ["^build"], "outputs": ["dist/**"], "inputs": ["src/**", "package.json", "tsconfig.json"] }, "lint": { "outputs": [] }, "test": { "dependsOn": ["build"], "outputs": ["coverage/**"] } } } 输入/输出声明让缓存更准确;上游依赖通过 `^task` 表示父包的同名任务。远程缓存与 CI 集成# 启用远程缓存(示例占位,不包含敏感信息) turbo run build --cache-dir=.turbo 在 CI 中持久化 `.turbo` 缓存目录或配置官方远程缓存服务,提升跨机器命中率。选择性构建与过滤turbo run build --filter=apps/web --filter=packages/ui 按需过滤仅重建受影响的包,减少流水线耗时。验证要点配置与命令为稳定特性;在 pnpm/NPM 工作区均可应用。通过任务耗时与缓存命中率监控验证增量构建效果,指导输入/输出声明优化。

发表评论 取消回复