turborepo-caching 是做什么的?
配置 Turborepo 以实现高效的本地及远程缓存单仓库构建。适用于设置 Turborepo、优化构建管道或实施分布式缓存时。
概述
此技能帮助你充分利用 Turborepo 的缓存能力,通过避免重复计算来加速构建过程。它涵盖了本地缓存配置、远程缓存设置以及最佳实践,确保在多开发者环境中构建高效且一致。
功能
- 配置
turbo.json文件以管理任务依赖和缓存输出。 - 设置本地缓存以加速单个开发者的构建。
- 集成远程缓存服务(如 Vercel Remote Caching 或自定义解决方案)以实现团队级别的缓存共享。
- 优化构建管道,减少不必要的重新构建。
使用方法
在现有 Turborepo 项目中使用此技能,按照以下步骤操作:
- 确保已安装
turboCLI(npm install -g turbo或yarn global add turbo)。 - 创建或更新项目根目录下的
turbo.json文件:
{
"pipeline": {
"build": {
"dependsOn": ["^build"],
"outputs": ["dist/**", ".next/**"]
},
"test": {
"dependsOn": ["build"],
"outputs": []
}
}
}
- 选择启用远程缓存。对于 Vercel Remote Caching:
- 在 Vercel 仪表板中生成令牌。
- 设置环境变量:
TURBO_REMOTE_CACHE_SIGNATURE_KEY=your-vercel-token
- 运行构建:
turbo run build
远程缓存配置
远程缓存允许团队成员共享缓存工件。步骤包括:
- 选择一个远程缓存提供者(如 Vercel、AWS S3、自定义服务器)。
- 在
turbo.json中设置远程缓存 URL(如适用):{ "remoteCache": { "url": "https://your-cache-server.com/api/cache" } } - 确保所有团队成员拥有正确的环境变量(如
TURBO_REMOTE_CACHE_SIGNATURE_KEY)。
提示与最佳实践
- 仅缓存纯函数任务(输出完全由输入决定)。
- 在
outputs列表中明确指定输出路径,避免包含大型不必要的文件。 - 在 CI/CD 环境中使用远程缓存以减少构建时间。
- 定期监控缓存命中率以确保配置有效。
支持的平台
此技能适用于任何使用 Turborepo 的项目,包括 JavaScript/TypeScript、Next.js、React 等框架。
贡献
欢迎通过提交问题或拉取请求来改进此技能。
许可
MIT