Skip to content
  1. 单一仓库
monorepo/
├── apps/          # 应用项目
│   ├── web-app/
│   └── mobile-app/
├── packages/      # 共享库
│   ├── utils/
│   └── ui-components/
└── package.json   # 可能使用工具管理依赖

pnpm workspace 是 pnpm 提供的一种多包管理机制,用于声明项目下哪些属于工作区的一部分

yaml
packages:
  - play # 存放我们组件测试的时候的代码
  - docs # 存放我们组件文档的
  - "packages/**"
  1. 共享依赖
    依赖可以提升到仓库根目录(如 node_modules 共享),减少重复安装和版本冲突。
  • npmrc 配置 shamefully-host = true,将依赖提升到 node_modules 下,匹配依赖路径时优先匹配,实现依赖共享。
  • 只提升单例的包(如 reactvue)或高频共用工具(如 lodash
  1. 统一工具链
    使用统一的构建、测试、发布工具(如 Lerna、Nx、Turborepo、Rush 等)。
  2. 原子提交
    一次提交可以跨多个项目,便于协同修改(例如同时更新前端和后端 API)。