在我的monorepo中,我有3个包package1
,package2
,package3
,每个包都包含一个名为build
的npm脚本。
但是,这些包没有链接在一起。即在链接到兄弟包的任何包中都没有require()
。
从根文件夹中,我运行lerna run build
。它似乎按字母顺序运行build
个包。
有没有办法指定运行这些包的build
命令的顺序?
--sort
因为没有关联而无法工作。
答案 0 :(得分:2)
您没有指定顺序,而是通过将软件包作为另一个软件包的依赖项来指定拓扑。
如果需要在package1
之前构建package2
,则将package1
添加到package2
文件中package.json
的依赖项中。如果您不希望package2
直接依赖package1
(例如,在生产环境中),您仍然可以将其添加到devDependencies
中,Lerna将理解依赖关系。
来自lerna -h
:
-sort对包进行拓扑排序(依赖项先于依赖项)。 通过--no-sort禁用。 [boolean] [default:true]
注意:某些命令可以忽略此拓扑而运行,例如来自lerna exec's --parallel option documentation的命令:
完全忽略并发和拓扑排序
答案 1 :(得分:0)
lerna run build --include-dependencies --stream
Create a Custom Request Hook此标志可以提供帮助