Rsbuild v0.6 发布,基于 Rspack 的构建工具

Rsbuild 是基于 Rspack 的高性能构建工具,由字节跳动 Web Infra 开源,可以为 webpack 项目减少 90% 的配置,并提升 10 倍构建速度。

Rsbuild v0.6 已与 Rspack v0.6 同步发布!

本次发布的主要特性包括:

  • 🦀 升级 Rspack v0.6
  • 🌟 默认启用 error overlay
  • 🍭 支持 Vue JSX HMR
  • 🔥 全新的 transform 插件 API
  • 🎯 默认端口调整为 3000

🦀 升级 Rspack v0.6

Rsbuild 已将依赖的 Rspack 升级至 v0.6 版本,并适配了 Rspack v0.6 包含的 CSS Modules 不兼容更新。

在新版本中,Rspack 默认开启了新版 tree shaking 算法,使产物体积和产物稳定性得到显著提升。

比如,新版算法支持了 reexports optimization(重导出优化) ,能够更精确地移除未使用的模块,以 import { Button } from 'antd' 为例,新版算法使产物体积从 159kB 下降到 129kB,提升约 20%。

请参考 # Rspack v0.6.0 发布,全新 Tree Shaking 算法 了解更多。


🌟 默认启用 error overlay

从 Rsbuild v0.6 开始,dev.client.overlay 的默认值调整为 true。这意味着当出现编译错误时,Rsbuild 将默认弹出 error overlay 来展示错误信息:

如果你不需要此功能,可以将 dev.client.overlay 设置为 false 来禁用:

ts 复制代码
export default defineConfig({
  dev: {
    client: {
      overlay: false,
    },
  },
});

🍭 支持 Vue JSX HMR

@rsbuild/plugin-vue-jsx 现已支持 JSX HMR,当你在 Vue 3 应用中修改 JSX 代码时,会自动触发模块热替换,并保留当前页面的状态。

该功能由社区贡献者 @liyincode 实现 ❤️,并且发布为独立的 babel-plugin-vue-jsx-hmr 包,以便在 Rsbuild 以外的项目中使用。


🔥 全新的 transform API

Rsbuild 插件现已支持 transform API,这可以理解为 Rspack loader 的一个轻量化实现,它提供了简单易用的 API,并在底层自动调用 Rspack loader 进行代码转换。

在 Rsbuild 插件中,你可以通过 api.transform 快速实现代码转换功能,能够满足大部分常见场景,而无须学习 Rspack loader 的编写方法。

比如匹配以 .pug 为后缀的模块,并转换为 JavaScript 代码:

ts 复制代码
import pug from 'pug';

const pluginPug = () => ({
  name: 'my-pug-plugin',
  setup(api) {
    api.transform({ test: /\.pug$/ }, ({ code }) => {
      const templateCode = pug.compileClient(code, {});
      return `${templateCode}; module.exports = template;`;
    });
  },
});

对于一些复杂的代码转换场景,api.transform 可能无法满足,此时你可以使用 Rspack loader 进行实现。


🎯 默认端口调整为 3000

Rsbuild 已将 server.port 的默认值从 8080 调整到 3000

端口 3000 通常用于 web 开发领域,也是 create-react-app 等工具默认使用的端口。通过更改默认端口为 3000,可以避免在使用 8080 时可能遇到的端口冲突问题。

如果你需要使用 8080 端口,可以手动设置:

ts 复制代码
export default defineConfig({
  server: {
    port: 8080,
  },
});

📍 下一步

我们计划在 2024 年 7 月发布 Rsbuild v1.0 正式版,如果你想了解更多,欢迎:

相关推荐
飞的肖2 分钟前
前端使用 Element Plus架构vue3.0实现图片拖拉拽,后等比压缩,上传到Spring Boot后端
前端·spring boot·架构
青灯文案19 分钟前
前端 HTTP 请求由 Nginx 反向代理和 API 网关到后端服务的流程
前端·nginx·http
m0_7482548814 分钟前
DataX3.0+DataX-Web部署分布式可视化ETL系统
前端·分布式·etl
ZJ_.26 分钟前
WPSJS:让 WPS 办公与 JavaScript 完美联动
开发语言·前端·javascript·vscode·ecmascript·wps
GIS开发特训营30 分钟前
Vue零基础教程|从前端框架到GIS开发系列课程(七)响应式系统介绍
前端·vue.js·前端框架·gis开发·webgis·三维gis
Cachel wood1 小时前
python round四舍五入和decimal库精确四舍五入
java·linux·前端·数据库·vue.js·python·前端框架
学代码的小前端1 小时前
0基础学前端-----CSS DAY9
前端·css
joan_851 小时前
layui表格templet图片渲染--模板字符串和字符串拼接
前端·javascript·layui
m0_748236112 小时前
Calcite Web 项目常见问题解决方案
开发语言·前端·rust
Watermelo6172 小时前
详解js柯里化原理及用法,探究柯里化在Redux Selector 的场景模拟、构建复杂的数据流管道、优化深度嵌套函数中的精妙应用
开发语言·前端·javascript·算法·数据挖掘·数据分析·ecmascript