支持的浏览器
从 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
字段。如果您的构建系统不在项目的根目录中,这将很有用。
模式
string
,默认值为undefined
。- 可能的值:
usage
,entry
,undefined
(这与 Babel 中的useBuiltIns
(在新标签页中打开) 相匹配)
⚠️
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
。启用所有可能的转换。