简介
Lerna 是最初的 JavaScript/TypeScript 单仓工具。它已经存在多年,并被数万个项目使用,包括 React 和 Jest。
它解决了 JavaScript/TypeScript 单仓的两个最大问题
- Lerna 对任意数量的项目运行命令,并且以最有效的方式、正确的顺序运行,并可以将其分布到多台机器上。
- Lerna 管理您的发布流程,从版本管理到发布到 NPM,并且提供了各种选项以确保可以适应任何工作流程。
Nx(同名开源构建系统的背后公司)已经接管了 Lerna 的管理。Nx 是由前 Google 员工开发的构建系统,并利用了 Google 内部工具中使用的许多技术。Lerna v5 是在新的管理下发布的第一个版本,更新了过时的包并开始清理存储库本身。从 v6+ 开始,Lerna 将任务调度工作委托给 Nx 的经过实战检验、行业领先的任务运行器,这意味着 lerna run
可以免费获得缓存和命令分发的优势!
为什么选择 Lerna?
- 超级快!Lerna 速度很快,甚至比大多数同类解决方案都快(查看此基准测试以了解更多信息)。如何实现?在幕后,Lerna v6+ 使用 Nx 运行任务。详细了解 此处如何运行任务。
- 计算缓存 - Lerna 知道您即将运行的任务是否在过去执行过。Lerna 不会再次运行它,而是会立即恢复文件并重放终端输出。此外,此缓存可以与您的同事和 CI 共享。使用 Lerna 时,整个组织将永远不必重复构建或测试相同的内容。阅读更多 »
- 无需配置的分布式任务执行 Lerna 可以跨多台机器分发任何命令,无需任何配置,同时保留在单台机器上运行的开发体验。换句话说,使用 Lerna 扩展您的单仓就像启用一个布尔标志一样简单。查看启用 DTE 如何使您的 CI 速度提高 20 倍的示例。阅读更多 »
- 漂亮的终端输出 单仓可能拥有数百或数千个项目。在每个命令中打印所有内容会使您难以查看失败的原因。幸运的是,Lerna 做得更好。
- 强大的图形可视化工具 Lerna 带有一个强大的交互式可视化工具,简化了您对工作区的理解。阅读更多 »
- 发布到 NPM Lerna 是将多个包发布到 npm 的终极工具。无论包是否具有独立的版本,Lerna 都能满足您的需求。阅读更多 »
- 易于采用 即使拥有所有这些功能,Lerna 也非常易于采用。它几乎不需要任何配置。想看看如何操作吗?