Skip to main content

Monorepo

常用方案

yarn

lerna

开启 Workspace

workspaces 是 yarn 相对 npm 的一个重要优势(另一个优势是下载更快),它允许我们使用 monorepo 的形式来管理项目。

开启 workspace 的功能也比较简单,只需要在 package.json 里面将 private 设置为 true,并且规定好 workspaces 字段里面的子项目就好了。

{
...
private: true,
workspaces: [
"packages/*"
]
}
  • private:根目录一般是项目的脚手架,无需发布,"private": true会确保根目录不被发布出去。

  • workspaces:声明workspace中package的路径。值是一个字符串数组,支持Glob通配符。其中"packages/*"是社区的常见写法,也可以枚举所有package: "workspaces": ["package-a", "package-b"]

常用指令(yarn)

  1. yarn workspaces add package:给所有应用都安装依赖
  2. yarn workspace <workspace_name> add package:给某个应用安装依赖
  3. yarn add -W -D package:给根应用安装依赖 (-W: --ignore-workspace-root-check ,允许依赖被安装在workspace的根目录)