10月26日、BabelはJavaScriptコンパイラ「Babel 7.26.0」をリリースした。このバージョンでは、ECMAScriptのStage 4に到達した「import attributes」および「インライン正規表現モディファイア」をデフォルトでサポートするようになり、Flowのenumも解析可能になった。
主な新機能
import attributes
ECMAScript Stage 4に到達した「import attributes」機能により、モジュールのインポート時にプラットフォームにパラメータを提供できるようになった。これにより、以下のような構文が利用可能になる。
import "./my-module" with { type: "json" };
これは特に、JSONやCSSモジュールのインポートに役立つ。
インライン正規表現モディファイア
「インライン正規表現モディファイア」もStage 4に到達し、正規表現内で部分的にi、m、sフラグを有効・無効にすることが可能になった。例えば次のように、「hello」には大小文字を区別し、「world」には区別しないマッチングができる。
/hello (?i:world)/
この変更に伴い、@babel/plugin-proposal-regexp-modifiersは不要となり、代わりに標準機能として@babel/plugin-transform-regexp-modifiersが適用される。
非同期フックのサポート
Babelのプラグインが非同期のpre/postフックを提供できるようになった。この機能により、ビルドパイプラインの柔軟性が向上し、さらなるカスタマイズが可能となる。
拡張機能の動的インポートにおけるパスの変換
Babelはこれまで静的インポートでのみ.tsから.jsへのパス変換をサポートしていたが、今回のバージョンで動的インポートにも対応した。以下はその例である。
await import("./dep.ts");
await import("./dep.js");
詳細は詳細は7.26.0 Released: stage 4 features enabled by default, and a new experimental code printer · Babelを参照していただきたい。