本节内容源自以下链接的内容,并受 CC BY 4.0 许可证的约束。
除非另有说明,否则以下内容可被认为是基于原始内容进行修改和删除的结果。
用于配置 Rspack 输出的目标环境以及 Rspack 运行时代码的 ECMAScript 版本。
string | string[]
目前支持以下选项
选项 | 描述 |
---|---|
'web' |
编译为浏览器环境中可用(默认) |
'webworker' |
编译为 Web Worker |
'browserslist' |
根据配置的 browserslist 推断 ES-features 版本(如果 browserslist 配置可用,则为默认值) |
'node[[X].Y]' |
编译为 Node.js 环境中可用 |
'async-node[[X].Y]' |
为类似 Node.js 的环境编译(使用 fs 和 vm 异步加载块) |
'esX' |
将 Rspack 运行时编译到相应的 ECMAScript 版本。当前支持 es3 、es5 、es2015 、es2016 、es2017 、es2018 、es2019 、es2020 、es2021 、es2022 (默认使用 es5) |
'electron[[X].Y]-main' |
为 Electron 主进程编译。 |
'electron[[X].Y]-renderer' |
为 Electron 渲染进程编译,提供一个目标,使用 array-push 作为 chunkFormat 和 jsonp 作为 chunkLoading 用于浏览器环境,以及 NodeTargetPlugin 和 ExternalsPlugin 用于 CommonJS 和 Electron 内置模块。 |
'electron[[X].Y]-preload' |
为 Electron 渲染进程的预加载脚本编译 |
'nwjs[[X].Y]' |
编译为 NW.js 环境中可用 |
'node-webkit[[X].Y]' |
编译为 node-webkit 环境中可用 |
target
配置中的 esX
只能指定 Rspack 运行时代码的 ECMAScript 版本。如果您想指定用户代码的 ECMAScript 版本,可以使用 内置:swc-loader 或 babel-loader 来降级用户代码。
指定编译器需要编译到 Node.js 环境
当传递多个目标时,将使用功能的公共子集
请注意,目前并非所有目标都可以混合使用。当指定编译器需要为多个平台编译时,会报告错误
对于这种情况,您可以根据 MultiCompiler 定义多个 Rspack 配置来进行捆绑。
如果项目具有 browserslist 配置,则 Rspack 将使用它来
last 2 node versions
与 target: "node"
相同,带有一些 output.environment
设置)。Browserslist 可以指定您的 Web 应用程序可以在哪些浏览器中运行,它提供了一个配置来指定浏览器范围。Browserslist 已成为行业标准,它被 Autoprefixer、Babel、ESLint、PostCSS、SWC 和 webpack 等库使用。
支持的 browserslist 值
browserslist
- 使用自动解析的 browserslist 配置和环境(来自最近的 package.json
或 BROWSERSLIST
环境变量,有关详细信息,请参阅 browserslist 文档)browserslist:modern
- 使用来自自动解析的 browserslist 配置的 modern
环境browserslist:last 2 versions
- 使用显式 browserslist 查询(将忽略配置)browserslist:/path/to/config
- 显式指定 browserslist 配置browserslist:/path/to/config:modern
- 显式指定 browserslist 配置和环境可以选择指定一个 Node 或 Electron 版本。 在上面的表格中用 [[X].Y] 表示。
当 Rspack 生成运行时代码时,这有助于确定可以使用哪些 ES 功能(所有块和模块都由运行时代码包装)。
如果以上列表中没有预定义的目标满足您的需求,您可以将 target
设置为 false
,这将指示 Rspack 不使用任何插件。