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