サポートされているブラウザ
v1.1.10以降、browserslistを使用して、サポートされているブラウザを自動的に設定できるようになりました。
使用方法
.swcrc
{
"env": {
"targets": {
"chrome": "79"
},
"mode": "entry",
"coreJs": "3.22"
}
}オプション
targets
string | Array<string> | { [string]: string }、デフォルトは{}です。
プロジェクトでサポート/ターゲットとする環境を記述します。これは、browserslist互換 (新しいタブで開きます)クエリ(制限付き) (新しいタブで開きます)にすることができます。
.swcrc
{
"env": {
"targets": "> 0.25%, not dead"
}
}または、サポートする最小環境バージョンのオブジェクト
.swcrc
{
"env": {
"targets": {
"chrome": "58",
"ie": "11"
}
}
}環境例
chromeoperaedgefirefoxsafariieiosandroidnodeelectron
targetsが指定されていない場合、SWCはbrowserslistを使用してターゲット情報を取得します。
path
string、デフォルトは現在のディレクトリです。pathは、browserslistモジュールとbrowserslist設定ファイルを読み込むディレクトリを指定します。たとえば、.browserslistrcまたはpackage.jsonのbrowserslistフィールドです。これは、ビルドシステムがプロジェクトのルートにない場合に役立ちます。
mode
string、デフォルトはundefinedです。- 可能な値:
usage、entry、undefined(これはBabelのuseBuiltIns(新しいタブで開きます)と一致します)
⚠️
"foo"["a" + "t"]()のような使用方法の場合、usageモードは現在Babelほど効率的ではありません。 SWCは式"a" + "t"を評価せず、String.prototype.atポリフィルを含めません。
skip
バンドルサイズを小さくするためにスキップする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"が"3.0"と解釈されるため、マイナーバージョン(例:"3.22")を指定することをお勧めします。
追加オプション
debug:(boolean)デフォルトはfalseです。dynamicImport:(boolean)デフォルトはfalseです。loose:(boolean)デフォルトはfalseです。許可するプラグインに対してloose変換を有効にします。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です。可能なすべての変換を有効にします。