里程碑!Rspack1.0正式发布

程序员咋不秃头 2024-08-30 01:20:02

2024年08月28日,Rspack 1.0 版本正式发布。这意味着 Rspack 已经达到生产稳定,覆盖了 webpack 绝大多数的 API 和功能,并已经做好支持更多用户的准备。

v0.1.0 正式发布。v0.2.0 支持生成 System/ESM,新的SplitChunksPlugin 实现,loader 大部分 API 的兼容。v0.3.0 支持 Web Workers,builtin:swc-loader,和 webpack 架构对齐。v0.4.0 告别 NodeJS 14,你好 NodeJS 20。v1.0.0 达到生产稳定,覆盖了 webpack 绝大多数的 API 和功能,并已经做好支持更多用户的准备。

Rspack 是基于 Rust 编写的下一代 JavaScript 打包工具, 兼容 webpack 的 API 和生态,并提供 10 倍于 webpack 的构建性能。

自开源以来,Rspack 已然成为众多企业和开发者的首选。在字节跳动内部,Rspack 的周下载量高达 40 万,支撑着包括 TikTok、抖音在内的 1000 多个 Web 应用。此外,微软、Amazon、阿里巴巴等知名企业也纷纷加入 Rspack 的用户行列。

以下是对 Rspack 1.0 版本信息的相关汇总:

新特性极致性能:Rspack 基于 Rust 实现,持续优化性能,支持 lazy compilation 等核心功能,确保大型项目的构建效率。兼容性提升:Rspack 已兼容社区几乎所有的 webpack loader,支持 React、Vue 等主流库和框架,助力开发者无缝迁移。更小的包体积:Rspack 实现了完整的 split chunks、tree shaking 等优化特性,确保迁移后的项目包体积与 webpack 持平甚至更优。支持模块联邦 2.0:Module Federation 是一种 Micro-Frontend 架构模式,在前端生态中得到广泛应用。Rspack 团队和 Module Federation 团队一起合作开发了 Module Federation 2.0,为微前端架构的大型应用提供更强支持。稳定的 API 和新官网:Rspack 1.0 还包含一个全新的文档首页。Rstack

Rspack 不仅是一个打包工具,更是一整套 Web 开发技术栈的核心。Rstack(Rspack Stack 缩写) 包括 Rsbuild、Rslib、Rspress 和 Rsdoctor 等工具,分别面向不同的开发场景,提供从构建到部署的全方位支持。

Rspack:专注于实现底层的高性能 bundler,兼顾性能和灵活的配置。Rsbuild:专注于构建 Web 应用,提供开箱即用的开发体验。Rslib:专注于构建 library,提供高质量的 ESM 和 CJS 产物。Rspress:专注于生成静态站点,支持 MDX 来搭建文档站和博客。Rsdoctor:专注于构建分析,帮助开发者解决构建相关的问题。

这些工具共同构成了 Rstack 技术栈。我们希望通过提供统一的 web 开发工具,为开发者和用户带来一流的体验。

快速上手

1)使用 Rsbuild:

Rsbuild 是由 Rspack 驱动的高性能构建工具,由 Rspack 团队开发。它默认包含了一套精心设计的构建配置,提供开箱即用的开发体验,并能够充分发挥出 Rspack 的性能优势。

npm create rsbuild@latest

2)使用 Rspack CLI:

Rspack CLI 是对标 Webpack CLI 的工具,提供基础的 serve 和 build 构建命令。执行如下命令即可创建基于 Rspack CLI 项目:

npm create rspack@latest未来展望

Rspack 1.0 是一个全新的起点,在本次发布后,Rspack 团队将聚焦于以下目标:

开发 Rspack 1.x。Rspack 将在 1.x 版本迭代 12~18 个月,并带来更多的新特性和改进。发布 Rsbuild 1.0。它基于 Rspack 1.0,并支持多环境构建。目前 Rsbuild 已发布 1.0 RC,预计在 9 月发布正式版。发布 Rsdoctor 1.0。该版本将改进对 Vue 项目的支持,并提供适用于 CI / CD 环境的报告模式。开发 Rslib 0.x。Rslib 是基于 Rsbuild 的 library 构建工具。开发 Rspress 2.0。它将基于 React 19 实现,并改进一些过去不合理的设计。

下面是一些Rspack 团队计划在 Rspack 1.x 支持的关键能力:

更快的 HMR:Rspack 目前能够满足大部分项目的性能诉求,但是仍然存在较大的性能优化空间。可移植的缓存:目前 Rspack 已经实现了 memory cache,它带来了出色的 HMR 性能。下一步,我们将在此基础上实现 persistent cache ,这将解决大型项目冷启动耗时较长的问题,功能上对齐 webpack。基于 TypeScript 的优化:未来我们考虑重新将 TypeScript 作为 Rspack 的一等公民,充分利用 TypeScript 的静态信息,提供更高级的编译产物优化(如 基于 type 的 property renaming)。稳定的 Rust API:计划开放 Rspack 的 Rust API 用于集成。React Server Components 支持:未来 Rspack 将会为 RSC 提供一等公民的支持,提供更多的核心能力来帮助实现 RSC。例如,目前 Rspack 已经支持 layer 特性,能够在单次打包时构建出多种环境的产物。改进 ESM 产物:ESM 是 JavaScript 模块的标准,目前,我们正在改进 Rspack 和 webpack 对 ESM 产物的支持,并实现基于 Rspack 的 library 构建工具—— Rslib。这将帮助开发者更好地使用 Rspack 来构建 npm 包,并享受 ESM 带来的静态分析能力和 tree shaking 支持。

更多参考:https://rspack.dev/zh/blog/announcing-1-0

0 阅读:10