跳至内容
文档
配置
支持的浏览器

支持的浏览器

v1.1.10 开始,您现在可以使用 browserslist 自动配置支持的浏览器。

用法

.swcrc
{
  "env": {
    "targets": {
      "chrome": "79"
    },
    "mode": "entry",
    "coreJs": "3.22"
  }
}

选项

目标

string | Array<string> | { [string]: string },默认值为 {}

描述您为项目支持/目标的环境。这可以是 与 browserslist 兼容的 (在新标签页中打开) 查询 (存在限制) (在新标签页中打开)

.swcrc
{
  "env": {
    "targets": "> 0.25%, not dead"
  }
}

或者支持的最小环境版本的对象

.swcrc
{
  "env": {
    "targets": {
      "chrome": "58",
      "ie": "11"
    }
  }
}

示例环境

  • chrome
  • opera
  • edge
  • firefox
  • safari
  • ie
  • ios
  • android
  • node
  • electron

如果未指定 targets,SWC 使用 browserslist 获取目标信息。

路径

  • string,默认值为当前目录。
  • path 指定加载 browserslist 模块和任何 browserslist 配置文件的目录。例如,.browserslistrc 或 package.json 中的 browserslist 字段。如果您的构建系统不在项目的根目录中,这将很有用。

模式

⚠️

usage 模式目前效率不如 Babel,如果您有类似 "foo"["a" + "t"]() 的用法。SWC 不会评估表达式 "a" + "t",也不会包含 String.prototype.at 的 polyfill。

跳过

定义要跳过的 ES 功能以减小捆绑包大小。例如,您的 .swcrc 可以是

.swcrc
{
  "env": {
    "skip": ["core-js/modules/foo"]
  }
}

coreJs

  • string,默认值为 undefined
  • coreJs 指定要使用的 core-js 版本,可以是 swc 支持的任何 core-js 版本。例如,"3.22"

该选项在与 mode: "usage"mode: "entry" 一起使用时有效。建议指定次要版本(例如 "3.22"),否则 "3" 将被解释为 "3.0",这可能不包含最新功能的 polyfill。

其他选项

  • debug: (boolean) 默认值为 false
  • dynamicImport: (boolean) 默认值为 false
  • loose: (boolean) 默认值为 false。为任何允许它们的插件启用 宽松转换
  • include: (string[]) 可以是 core-js 模块 (es.math.sign) 或 SWC 传递 (transform-spread)。
  • exclude: (string[]) 可以是 core-js 模块 (es.math.sign) 或 SWC 过程 (transform-spread)。
  • shippedProposals: (boolean) 默认值为 false
  • forceAllTransforms: (boolean) 默认值为 false。启用所有可能的转换。