返回列表
开发
2024-05-20
10 分钟
1874
用 pnpm Workspace 搭建 Monorepo 最佳实践
pnpm Monorepo 工程化
为什么选择 pnpm?
pnpm 使用硬链接和符号链接避免重复安装,节省磁盘空间,且原生支持 workspace。
目录结构
my-monorepo/
├── pnpm-workspace.yaml
├── package.json
├── apps/
│ ├── web/
│ └── api/
└── packages/
└── ui/
pnpm-workspace.yaml
packages:
- "apps/*"
- "packages/*"
内部依赖
{
"dependencies": {
"@my/ui": "workspace:*"
}
}
过滤执行
# 只构建 web 应用及其依赖
pnpm --filter web... build
CI 缓存策略
缓存 ~/.pnpm-store 可大幅提速,配合 pnpm install --frozen-lockfile 保证可复现构建。