likes
comments
collection
share

2023 单仓库框架对比 Turbo vs Nx vs Rush

作者站长头像
站长
· 阅读数 111

前言

准备开发一个 React 组件库,发现有多种「monorepo」方案,于是对比了一下。

首先「monorepo」指的是单个代码库中包含多个应用和包的集合,每个应用和包都有自己的 package.josn

使用「monorepo」方案好处是,简化应用和包的版本管理,可以在一个提交同时修复多个应用和包中的错误。

对比

Turborepo

Turborepo 在 2021 年由 Vercel 创建。官网介绍 Turborepo 是一个针对 JavaScript 和 TypeScript 代码库优化的智能构建系统,使用缓存来增强本地设置并加速 CI,支持渐进式使用,可以在几分钟内将其添加到大多数代码库中。

文档地址

创建项目

pnpm dlx create-turbo@latest

2023 单仓库框架对比 Turbo vs Nx vs Rush

Turborepo 创建一个「monorepo」项目快捷方便,创建之后马上就能进入开发阶段。

首次构建

pnpm run build

2023 单仓库框架对比 Turbo vs Nx vs Rush

缓存构建

2023 单仓库框架对比 Turbo vs Nx vs Rush

Nx

Nx Lerna 项目的继承者,Lerna 是前端最流行的「monorepo」解决方案。Nx 拥有并行运行任务,并根据任务之间的依赖关系对任务进行排序,通过本地和远程缓存,自动依赖项更新,高度可定制性和可扩展性,等特点。

文档地址

创建项目

npx create-nx-workspace --pm pnpm

2023 单仓库框架对比 Turbo vs Nx vs Rush

2023 单仓库框架对比 Turbo vs Nx vs Rush

使用 Nx 在创建「monorepo」项目时需要完成很多选项,它的命令行工具类似于 Angular Cli,具有大而全的特点,刚上手会有点不知所措。

首次构建

2023 单仓库框架对比 Turbo vs Nx vs Rush

缓存构建

2023 单仓库框架对比 Turbo vs Nx vs Rush

Rush

Rush 在 2016 年由 Microsoft 创建。支持子集构建和增量构建,循环依赖,批量发布,跟踪更新日志等功能;还拥有 Rush Stack,其中包括构建工具 Heft 和 Node.js 启动性能分析工具 Rundown 等工具。

文档地址

创建项目

需要全局安装 rush

pnpm install @microsoft/rush -g

然后使用 rush init 命令在一个空文件夹初始化 rush 项目

2023 单仓库框架对比 Turbo vs Nx vs Rush

首次构建

rush build

2023 单仓库框架对比 Turbo vs Nx vs Rush

缓存构建

2023 单仓库框架对比 Turbo vs Nx vs Rush

总结

Turborepo 上手简单,首次构建速度较慢,但是有缓存之后速度显著变快,目前提供的功能比其他两个少。

Nx 上手稍显复杂,不过文档完善,构建速度是三者之中最快的,功能丰富齐全。

Rush 上手难度最高,配置复制,有中文文档,构建速度稳定,最大的优势是很高的自由度和多种独特的功能。

上手难度构建速度功能特性
Turborepo⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️
Nx⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️
Rush⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️

⭐️ 越多得分越高

本文完,感谢阅读🌹

转载自:https://juejin.cn/post/7288340985230278675
评论
请登录