Lerna 指定运行顺序

标签 lerna

在我的 monorepo 中,我有 3 个包 package1 , package2 , package3 ,每个包都包含一个名为 build 的 npm 脚本.

但是,这些包没有链接在一起。即没有require()在链接到同级包的任何这些包中。

从根文件夹,我运行 lerna run build .它似乎运行 build按字母顺序排列的包。

有没有办法指定运行 build 的顺序这些包的命令?
--sort不会工作,因为它们没有链接。

最佳答案

您不指定顺序,而是通过包含一个包作为另一个包的依赖项来指定拓扑。

package1之前需要建package2您添加 package1package2 的依赖项在后者的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/

相关文章:

node.js - 如何成功锁定 monorepo 中的 Node 模块依赖项?

javascript - 如何在不发布的情况下在 lerna monorepo 中构建 docker 镜像

typescript - 如何使用 Typescript 的引用和构建模式将 mono repo 编译为 serverless bundle?

javascript - Lerna bootstrap 不链接本地依赖项?

lerna - 如何在 monorepo 中仅打包 dist 文件夹

node.js - Lerna 构建在远程失败 - 内部包的符号链接(symbolic link)很糟糕

npm - lerna publish 和 npm pack 无法打包 "dist"文件夹中的所有文件

javascript - Lerna 能否根据 Conventional Commits 规范提升预发布版本?

node.js - 无法运行lerna的命令

vue.js - 当我使用 lerna 运行服务命令时,我得到了大量的输出行