📄️ 运行任务
Monorepo 可能有数百甚至数千个项目,因此能够针对所有(或部分)项目运行 npm 脚本是像 Lerna 这样的工具的关键特性。
📄️ 缓存任务结果
在运行任务、缓存等方面,Lerna 和 Nx 可以互换使用。当我们说"Lerna 可以缓存构建"时,我们的意思是 Lerna 使用 Nx 来缓存构建。
📄️ 共享您的缓存
Lerna 提供的计算缓存可以分布在多台机器上。您可以自行构建缓存实现,也可以使用 Nx Cloud。Nx Cloud 是一个提供快速且零配置的分布式缓存实现的应用。对于开源项目和大多数闭源项目都是完全免费的(在此处了解更多)。
📄️ 探索项目图
为了快速且正确地运行任务,Lerna(和 Nx)会创建仓库中所有项目之间依赖关系的图。以可视化方式探索这个图可以帮助您理解 Lerna 的行为方式,并获得代码架构的高级视图。
📄️ 分发任务执行
Lerna 通过缓存和 --since 标志加速了您的平均 CI 时间。但这些特性都无法帮助解决最坏的情况。当仓库核心发生修改,并且每个任务都需要在 CI 中运行时,提高性能的唯一方法是添加更多代理作业并有效地并行任务。
📄️ 版本 和发布
Lerna 可以增加您的包的版本,并将包发布到 NPM,并提供各种选项以确保可以适应任何工作流。
📄️ 编辑器集成
Nx Console 在 VS Code 侧边栏中显示所有项目的 npm 脚本,并允许您单击运行它们或在编辑器中打开脚本定义。
📄️ 工作空间监视
工作空间监视从 Lerna 6.4.0 版本开始可用。