在我的 monorepo 中,我有 3 个包 package1
, package2
, package3
,每个包都包含一个名为 build
的 npm 脚本.
但是,这些包没有链接在一起。即没有require()
在链接到同级包的任何这些包中。
从根文件夹,我运行 lerna run build
.它似乎运行 build
按字母顺序排列的包。
有没有办法指定运行 build
的顺序这些包的命令?--sort
不会工作,因为它们没有链接。
最佳答案
您不指定顺序,而是通过包含一个包作为另一个包的依赖项来指定拓扑。
如 package1
之前需要建package2
您添加 package1
到 package2
的依赖项在后者的package.json
文件。如果您不想要 package2
直接依赖 package1
(例如在生产中)您仍然可以将其添加到 devDependencies
并且 Lerna 会理解依赖关系。
来自 lerna -h
:
--sort Sort packages topologically (dependencies before dependents). Pass --no-sort to disable. [boolean] [default: true]
备注 可以忽略此拓扑运行某些命令,例如来自 lerna exec's --parallel option documentation :
completely disregards concurrency and topological sorting
关于Lerna 指定运行顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50769518/