当项目变得庞大时,根据业务可以拆分为多个子项目,分别开发维护,有利于多团队协作。
然而,当子项目变多后,在项目间来换切换的成本也在变高,尤其是一个更新涉及多个子项目时。这时需要一种将子项目组合起来的方式。
git submodule:将多个子项目组合在一起。
npm workspace:将多个子项目统一管理构建。
1)在主项目中添加子项目:
git submodule [--quiet] add [<options>] [--] <repository> [<path>]
#指定分支
git submodule -b feature/XXX <repo-url> packageA
2) 在package.json中添加子项目
{
"name": "my-project",
"workspaces": [ "packageA"]
}
3) 在主项目根目录安装依赖,主项目会主动安装子项目的依赖,避免重复安装子项目依赖
npm install
4)构建
npm run build -w packageA
-w 指定构建的子项目后,会在 packageA 下执行 npm run build