lib.syntax
- 类型:
- 默认值:
- 当 output.target 为
'node',且package.json#engines.node可推断出最低 Node.js 版本时,使用['node >= <minimum-version>'] - 其他情况下,使用
'esnext'
- 当 output.target 为
- 命令行:
--syntax <value>(可重复,例如--syntax es2018或--syntax="node 14" --syntax="Chrome 103") - 顶层配置: 支持
配置 JavaScript 和 CSS 将被降级的语法版本。
参考 产物兼容性 - 语法降级 了解更多详情。
默认行为
当 output.target 设置为 'node' 且未配置 syntax 时,Rslib 会尝试根据 package.json#engines.node 推断语法目标。如果 package.json 声明了可推断出最低版本的 engines.node 范围,Rslib 会使用该范围中的最低 Node.js 版本作为语法目标。
package.json
上述配置等效于:
rslib.config.ts
其他情况下,Rslib 默认使用 'esnext'。这意味着产物会以主流浏览器(Chrome / Firefox / Edge / macOS Safari / iOS Safari)或 Node.js 的最新版本为语法目标,具体取决于 output.target。
如需覆盖该默认行为,显式设置 syntax 即可。
设置 ECMAScript 版本
你可以直接设置 ECMAScript 版本,例如 es2015、es2022 等。
rslib.config.ts
设置 Browserslist 查询
你也可以设置 Browserslist 查询语句,例如 last 2 versions、> 1%、node >= 16、chrome >= 80 等。
rslib.config.ts
混合使用 ECMAScript 版本和 browserslist 查询
你也可以混合使用 ECMAScript 版本和 Browserslist 查询语句,例如 es2015 和 node 20。Rslib 会将 ECMAScript 版本转换为 Browserslist 查询语句,然后将它们合并在一起。
rslib.config.ts
