在我的 monorepo 中,我有 3 个包package1
, package2
, package3
,每个包都包含一个名为build
.
但是,这些包没有链接在一起。即,require()
在任何这些包中都没有链接到同级包。
从根文件夹中,我运行lerna run build
. 它似乎build
按字母顺序运行包。
有没有办法指定运行build
这些包的命令的顺序?
--sort
不会工作,因为它们没有链接。
在我的 monorepo 中,我有 3 个包package1
, package2
, package3
,每个包都包含一个名为build
.
但是,这些包没有链接在一起。即,require()
在任何这些包中都没有链接到同级包。
从根文件夹中,我运行lerna run build
. 它似乎build
按字母顺序运行包。
有没有办法指定运行build
这些包的命令的顺序?
--sort
不会工作,因为它们没有链接。
您不指定顺序,而是通过将包作为另一个包的依赖项来指定拓扑。
如果package1
需要在package2
添加到后者文件中package1
的依赖项之前构建。如果您不想直接依赖(例如在生产上),您仍然可以将其添加到其中,Lerna 将理解依赖关系。package2
package.json
package2
package1
devDependencies
来自lerna -h
:
--sort 对包进行拓扑排序(依赖项之前的依赖项)。通过 --no-sort 禁用。[布尔] [默认值:真]
注意可以忽略此拓扑运行某些命令,例如来自lerna exec 的 --parallel 选项文档:
完全无视并发和拓扑排序
lerna run build --include-dependencies --stream
--include-dependencies这个标志可以提供帮助
您可以首先构建您的共享包,然后触发另一个构建。
前任 :
yarn workspace @shared run build && yarn lerna run build