传统Multirepo vs Monorepo对比:
├── Multirepo
│ ├── project1(独立仓库)
│ └── project2(独立仓库)
│
└── Monorepo
├── apps(应用集合)
└── packages(共享代码库)
核心优势:
工具 | 构建速度 | 缓存机制 | 学习成本 | 生态集成 |
---|---|---|---|---|
Lerna | 较慢 | 无 | 低 | 一般 |
Nx | 快 | 强 | 高 | Angular系 |
Rush | 中等 | 中等 | 较高 | 微软生态 |
Turborepo | 极快 | 智能 | 低 | Vercel全家桶 ✅ |
操作 | Lerna | Nx | Turborepo |
---|---|---|---|
首次构建 | 98s | 45s | 32s |
二次构建 | 87s | 12s | 0.8s |
增量修改构建 | 76s | 8s | 1.2s |
my-monorepo
├── apps
│ └── vue3-app(Vue3主应用)
└── packages
├── shared(工具库)
└── ui-lib(组件库) # 重点讲解
Step 1 - 初始化Turborepo
npx create-turbo@latest
pnpm install vue@3 @vitejs/plugin-vue
Step 2 - 配置UI库package.json
// packages/ui-lib/package.json
{