为什么要在Monorepo的根级别package.json中声明软件包-lerna

时间:2020-03-01 17:34:57

标签: javascript node.js npm lerna

我正在使用使用lerna的monorepo。此仓库在根package.json处声明了file:协议包:

"dependencies": {
    "moduleA": "file:packages/moduleA,
    "moduleB": "file:packages/moduleB
}

此monorepo根目录下的lerna.json具有标准的默认包文件夹glob模式:

{
    "packages": [
        "packages/*"
    ],
    "version": "0.0.0"
}

那为什么要这样做?我没有看到official documentation中提到将lerna管理的leaf packages显式添加到package.json的任何地方:

lerna.json中的packages配置是与包含package.json的目录匹配的glob列表,这是lerna识别“叶子”包的方式(与“ root” package.json相比,后者旨在管理开发人员整个仓库的依赖项和脚本)。

如果lerna是learn ls文件夹中的leaf packages的{​​{1}}感知者,为什么在根package.json中显式声明packages作为依赖项?

请注意,我正在工作的团队管理着几个monorepos,一个monorepo在根package.json中没有依赖关系,但是这个monorepo可以。因此,背后有意图,我正在尝试弄清意图是什么。

0 个答案:

没有答案