跳到主要内容

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 Console - 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