在这里,你可以了解到 Rsbuild 支持的主要功能。
| 功能 | 描述 | 相关链接 |
|---|---|---|
| Rspack 打包 | 默认使用 Rspack 作为打包工具 | - |
| SWC 编译 | 默认通过 SWC 对 JavaScript 和 TypeScript 代码进行转译和压缩 | - |
| TS 编译 | 默认通过 SWC 编译 TS 文件 | |
| 代码压缩 | 默认在生产环境构建时开启代码压缩 | |
| Polyfill 注入 | 默认会注入 core-js 等 Polyfill | |
| SourceMap 生成 | 默认在开发环境生成 SourceMap | |
| 文件别名 | 可选功能,通过 alias 设置文件别名 | |
| Babel 编译 | 可选功能,通过 Babel 对 JavaScript 和 TypeScript 代码进行转译 | |
| Node 产物 | 可选功能,支持构建出运行在 Node.js 环境的 JavaScript 产物 | |
| Web Worker 产物 | 可选功能,支持构建出运行在 Web Worker 环境的 JavaScript 产物 | |
| 浏览器范围 | 可选功能,通过 browserslist 来设置 Web 应用需要兼容的浏览器范围 | |
| 兼容性检查 | 可选功能,分析构建产物中是否存在当前浏览器范围下不兼容的高级语法 | |
| 注入环境变量 | 可选功能,向代码中注入环境变量或表达式 | |
| Node polyfill | 可选功能,在浏览器端注入 Node 核心模块的 polyfills | |
| TS 类型检查 | 可选功能,运行 type checker 检查代码中的类型问题 | |
| 模块联邦 | 可选功能,动态加载模块,并共享依赖关系 |
| 功能 | 描述 | 相关链接 |
|---|---|---|
| PostCSS 转换 | 默认开启 PostCSS 转换,内置 autoprefixer 插件 | |
| Sass 预处理器 | 可选功能,编译 Sass/Scss 文件 | |
| Less 预处理器 | 可选功能,编译 Less 文件 | |
| Stylus 预处理器 | 可选功能,编译 Stylus 文件 | |
| CSS Modules 编译 | 默认支持编译 CSS Modules 文件 | |
| CSS Modules 类型提示 | 可选功能,生成 CSS Modules 的类型定义文件 | |
| CSS 压缩 | 默认在生产环境构建时开启压缩 | |
| Styled Components | 可选功能,支持 styled-components 编译 | |
| 内联 CSS 到 JS 中 | 可选功能,将 CSS 文件内联到 JS 文件中 | |
| Rem 单位转换 | 可选功能,将 CSS 中的 px 转成 rem 单位 | |
| Lightning CSS | 可选功能,使用 Lightning CSS 提升编译性能 |
| 功能 | 描述 | 相关链接 |
|---|---|---|
| 设置标题 | 设置 HTML 的 title 标签 | |
| 设置 meta | 设置 HTML 的 meta 标签 | |
| 设置 favicon | 设置页面的 favicon 图标 | |
| 设置 app 图标 | 设置 iOS 系统下的 apple icon | |
| 使用 EJS 模板引擎 | 可选功能,使用 EJS 模板语法 | |
| 使用 Pug 模板引擎 | 可选功能,使用 Pug 模板语法 | |
| 内联 JS 文件 | 可选功能,将 JS 内联到 HTML 中 | |
| 内联 CSS 文件 | 可选功能,将 CSS 内联到 HTML 中 |
| 功能 | 描述 | 相关链接 |
|---|---|---|
| Public 目录 | 默认将 public 目录作为静态资源服务的文件夹 | |
| 请求代理 | 可选功能,将请求代理到指定的服务上 | |
| 打开页面 | 可选功能,在启动 server 时自动在浏览器中打开页面 | |
| HTTPS | 可选功能,开启 server 对 HTTPS 的支持 |
| 功能 | 描述 | 相关链接 |
|---|---|---|
| React | 可选功能,开启 React JSX 语法编译 | |
| React Refresh | 可选功能,开启 React Refresh 热更新 | |
| SVGR | 可选功能,转换 SVG 为 React 组件 | |
| Vue 3 SFC | 可选功能,开启 Vue 3 SFC 单文件组件编译 | |
| Vue 3 JSX | 可选功能,开启 Vue 3 JSX 语法编译 | |
| Vue 2 SFC | 可选功能,开启 Vue 2 SFC 单文件组件编译 | |
| Vue 2 JSX | 可选功能,开启 Vue 2 JSX 语法编译 | |
| Svelte | 可选功能,开启 Svelte 组件编译 | |
| Solid | 可选功能,开启 Solid JSX 语法编译 |
| 功能 | 描述 | 相关链接 |
|---|---|---|
| 引用图片资源 | 支持在代码中引用图片资源 | |
| 引用字体资源 | 支持在代码中引用字体资源 | |
| 引用视频资源 | 支持在代码中引用视频资源 | |
| 引用 Wasm 资源 | 支持在代码中引用 WebAssembly 资源 | |
| 引用 node addons | 支持在代码中引用 Node.js addons | - |
| 静态资源内联 | 默认将体积较小的图片等资源内联到 JS 中 | |
| 清理静态资源 | 每次开始构建前,自动清理 dist 目录下的静态资源 | |
| 拷贝静态资源 | 可选功能,将静态资源拷贝到 dist 目录下 |
| 功能 | 描述 | 相关链接 |
|---|---|---|
| 产物自动拆包 | Rsbuild 中内置了多种拆包策略,自动将代码包拆分为体积适中的文件 | |
| 展示产物体积 | 在生产环境构建后,默认展示所有静态资源的体积信息 | |
| 分析产物体积 | 可选功能,通过 Bundle Analyzer 分析产物体积 | |
| 移除 console | 可选功能,移除代码中的 console.[methodName] |
|
| 优化 moment.js 体积 | 可选功能,移除 moment.js 多余的 locale 文件 | |
| 组件库按需引入 | 可选功能,按需引入组件库的代码和样式 | |
| 图片压缩 | 可选功能,对引用的图片资源进行压缩处理 | |
| Preload | 可选功能,对资源进行预加载 | |
| Prefetch | 可选功能,对资源进行预获取 | |
| Preconnect | 可选功能,对资源进行预连接 | |
| DNS prefetch | 可选功能,对资源进行 DNS 预获取 |