跳至主要内容

Lerna 和 Nx

Nrwl(开源构建系统 Nx 背后的公司)已接管Lerna 的管理Nx 是由前 Google 工程师开发的构建系统,并利用了 Google 内部工具使用的许多技术。Lerna 使用 Nx 检测工作区中的包以及它们之间的依赖关系。Lerna 将强大的任务运行器委托给 Nx 来运行脚本,允许您并行运行它们、缓存结果并在多台机器上分发它们,同时确保尊重包之间的依赖关系。有关 Lerna 版本与 Nx 版本兼容性的完整列表,请参阅Lerna 和 Nx 版本矩阵

以下是每个工具提供的功能的高级概述。Lerna 可以继续单独使用,并且免费添加 Nx Cloud 可以极大地改善您正在执行的操作。

Lerna

特性

  1. 版本 - 自动递增包的版本、生成更改日志信息、创建 Github 发布等。
  2. 发布 - 自动创建标签并将包发布到包注册表,例如 npm

成本

免费且开源

设置

  • npm install lerna
  • npx lerna init

Nx

特性

  1. 仅运行受代码更改影响的任务
  2. 首先运行先决条件任务
  3. 在本地缓存任务结果
  4. 可视化项目图
  5. Nx 控制台 - Visual Studio Code 插件

成本

免费且开源

设置

  • npx lerna add-caching
  • 继续像往常一样使用 Lerna
注意

Lerna 在幕后将任务委托给 Nx 的强大任务运行器以检测任务依赖关系。lerna run 的一些选项的行为与旧版 Lerna 中的行为有所不同。有关与旧版 Lerna 的区别,请参阅使用 Lerna(由 Nx 提供支持)运行任务,了解更多详细信息。


Nx Cloud

特性

  1. 在整个组织中共享缓存的任务结果
  2. 分发任务执行,在代理机器之间高效地执行。

成本

开源项目免费

对于闭源存储库,每月前 500 个计算小时免费。大多数存储库不会超过此限制。之后每计算小时 1 美元。

设置

  • npx nx connect-to-nx-cloud
  • nx generate @nrwl/workspace:ci-workflow(或手动设置您的 CI)
  • 继续像往常一样使用 Lerna