筷筷小报#2 - Rspack推出正式版,准备好升级你的前端构建工具了吗?

Fri, August 30, 2024 - 11 min read

主要聚焦于前端领域,每周五分享我看过听过体验过的零零碎碎~

开源动态

1 Rspack 推出1.0正式版🎉🎉

Rspack 是基于 Rust 的高性能 Web 打包工具,它提供对 webpack 生态良好的兼容性,能够无缝替换 webpack,并提供闪电般的构建速度

字节前端 infra 团队创建 Rspack 的原因,是为了解决在字节跳动维护构建工具时遇到的各种性能问题。由于字节跳动内部存在许多巨石应用,它们都具有复杂的构建配置,生产环境的构建需要耗费十几分钟,甚至超过半小时;开发环境的耗时也超过十几分钟。

在8月28号,Rspack 终于到达了一个崭新的阶段 —— 1.0。这意味着 Rspack 已经达到生产稳定,覆盖了 webpack 绝大多数的 API 和功能,并已经做好支持更多用户的准备。

Rspack 目前已经实现了 webpack 绝大部分的功能,目前的功能也能够满足大多数项目的需求。同时,我们已经在内部的几百个业务上完成了落地,取得了 5~10 倍编译性能的提升。目前的性能仍然存在较大提升空间,我们会持续对 Rspack 进行更深入的性能优化。

Rspack 已经完成了对 webpack 主要配置的兼容,并且适配了 webpack 的 loader 架构。目前,你已经可以在 Rspack 中无缝使用你熟悉的各种 loader,如 babel-loader、less-loader、sass-loader、vue-loader 等等。

目前 Rspack 对缓存支持还比较简单,仅支持了内存级别的缓存,未来我们会建设更强的缓存能力,包括可迁移的持久化缓存,这将带来更大的想象空间,如在 monorepo 里不同的机器上都可以复用 Rspack 的云端缓存,提升大型项目的缓存命中率。

更多关于 Rspack 的介绍,请看官方文档

关于 Rspack 1.0 的更多信息,请看「文章.2

2 Zustand 推出5.0预发布版本🎉

Zustand 是 React 生态中小型、快速和可扩展的状态管理解决方案,拥有基于 hooks 的舒适的API,非常地灵活。

Zustand

如果你正在使用 v4 版本且想尽早尝鲜,可以看看作者写的文章如何从v4迁移到v5


工具推荐

1 Shots 能够快速创建产品的宣传图

下方图片是我使用该网站为我开发的记账小程序妙记无痛生成的宣传图

MiaoJiBanner


文章

1 如何创建一个 NPM 包 (英)

如何在 2024 年创建一个 NPM 包,听起来很简单,但如果你想要遵循最佳实践、引入有用的工具并使其恰到好处,那就有很多步骤。Matt Pocock 在此介绍了这个过程,该片文章还有作者的视频版讲解。

2 Rspack 1.0 发布

Rspack 1.0 正式发布

Rspack 1.0,一款基于 Rust 编写的 JavaScript 打包工具正式发布。它兼容 webpack 的 API 和生态,同时提供显著的性能提升,是下一代的构建工具。自 Rspack 0.1 版本开源以来,经过 18 个月的发展,170 位贡献者参与其中,提交了超过 5000 个 pull request 和 2000 个 issues。Rspack 的 npm 周下载量已突破 10 万次,字节跳动内部的周下载量更是超过 40 万。Rspack 1.0 版本意味着该工具已经成熟稳定,能够满足生产环境的需求,覆盖了 webpack 的绝大多数 API 和功能。

新特性和优化

Rspack 1.0 带来了一系列新特性和优化,包括极致的性能提升、更好的兼容性、更小的包体积、对模块联邦 2.0 的支持以及稳定的 API。Rspack 团队还推出了全新的文档首页,提供了更加完善的指南和 API 文档。此外,Rspack 1.0 还致力于支持现代 Web 标准,如 Web Worker、JSON modules 等,并在 Rust 和 JavaScript 之间的通信上进行了优化,以降低开销。

Rspack 的未来规划

Rspack 团队计划在未来的 1.x 版本中继续开发新特性和改进,包括更快的 HMR、可移植的缓存、基于 TypeScript 的优化、稳定的 Rust API、对 React Server Components 的支持以及改进 ESM 产物。Rspack 1.0 的发布是一个新的起点,团队将聚焦于提升性能、扩展兼容性,并继续与社区合作,以推动 Rspack 和相关工具链的发展。同时,Rspack 团队也感谢了社区贡献者和合作伙伴的支持,并期待与更多企业和开发者建立合作。

3 《HelloGitHub》第 101 期

HelloGitHub 分享 GitHub 上有趣、入门级的开源项目,每月 28 号更新一期。这里有好玩和入门级的开源项目、开源书籍、实战项目、企业级项目,让你用极短的时间感受到开源的魅力,对开源产生兴趣。


播客

1 Next.js 是否为独立开发者的首选框架

Next.js 不仅改变了我们开发的方式,还让我们的前后端代码无缝连接。归归将与我们分享他作为后端开发者的独到见解,揭示为什么 Next.js 成为独立开发者的最佳选择。无论你是新手还是资深开发者,这一集都将让你有所收获!准备好你的耳机,一起进入 Next.js 的世界吧!


视频

1 【现代前端开发必知06】那些简单而又复杂的工具链

介绍现代前端工具链的主要成员,包括集成开发环境,不同种类的包管理器,企业级包管理,现代构建工具的组成要素和发展趋势,不同场景下的调试工具以及 CI/CD 工具。

2 我们需要更愚蠢的代码【让编程再次伟大#15】

我们需要在性能和代码可读性、可维护性中做出平衡。高性能或高技巧的代码尽管往往只占用更少的代码行数,但是要写好它,看懂它,都需要门槛。这种门槛让它不那么直白,甚至自视清高,但代价是易读性的丢失,是维护难度和测试难度的增加,是出错风险的大大提升

3 vlog #70|程序员下班后的学习记录|web3 学习中|看完《诊疗椅上的谎言》| 《巴菲特致股东的信》|日常英语学习|TED|精神状态很好的一周 😁

每周我补充能量、提供学习动力的一个来源🥰。


句子

1 “注意力在哪里,哪里就有能量”

——polebug23

2 做自我的观察者

其实我以前并不是一个很自律的人,就比如大学时,我室友经常6点多起来学习,而我却无法做到,又或是刷题没一会,就去玩手机了。

但现在的我,在执行力和行动力方面都增强了许多。而这其中,让我发生变化的因素就是:“是否存在一个观察者”。

刚上大学那时候,没有了老师、父母的监管,我很难察觉到自己的状态是否正常,这种感觉就像是,你在一个不透光的房间里玩手机,很难察觉自己其实已经从白天玩到黑夜了。

帮助我打破这种失控局面的方法,就是尝试做自我的观察者,有意识地去观察并记录自己的行为,站在一个第三视角去分析这些行为。

就比如很多时候,我们刷手机并不是因为想刷,而是因为习惯了。就像我以前一开始统计的时候,惊讶地发现,我每天居然要刷手机几十次,而这些行为如果我不去观察,我自己是根本无法发现的。

这个方法其实帮了我很大的忙,一是它让我意识到我把时间到底花在哪了,二是当我习惯去观察自己的时候,这个习惯会在我的脑子里弹出一个提示,让我去确认我当下是否想做这件事情,这个对我自己形成了很强的约束力

——polebug23