catalog(目录协议)
- 定义
pnpm-workspace.yaml
packages:定义多仓库
packages:
- 'packages/*'
catalog:
chalk: ^4.1.2
catalogs:
react16:
react: ^16.7.0
react-dom: ^16.7.0
react17:
react: ^17.10.0
react-dom: ^17.10.0
这里有两种方式定义 catalog
- catalog
// pnpm-workspace.yaml
catalog:
chalk: ^4.1.2
// packages/app/package.json
{
"name": "app",
"dependencies": {
"chalk": "catalog:"
}
}
- catalogs
// pnpm-workspace.yaml
catalogs:
react16:
react: ^16.7.0
react-dom: ^16.7.0
react17:
react: ^17.10.0
react-dom: ^17.10.0
// packages/app/package.json
{
"name": "app",
"dependencies": {
"react": "catalog:react18",
"react-dom": "catalog:react18"
}
}
优点
- 维护唯一版本
- 升级简单
- 更少的合并冲突