BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Babel 7.9はバンドルサイズを縮小とTypeScript3.8サポートを追加

Babel 7.9はバンドルサイズを縮小とTypeScript3.8サポートを追加

原文(投稿日:2020/03/25)へのリンク

Babel 7.9リリースでは、module/nomoduleパターンを使用する場合のデフォルトのバンドルサイズが減少し、TypeScript3.8とそのタイプのみのインポートおよびエクスポートのサポートが追加されている。Babel 7.9は、JSX変換の最適化も改善し、ES RecordとTuple提案の実験的なパーサーサポートを追加する。

Babel 7.9より前は、@babel/preset-envはECMAScript構文機能を関連する小さな機能単位にグループ化していた。残念ながら、このアプローチでは、新しいエッジケースと修正が徐々に導入されて、時間の経過とともに大きくバンドルが増加していた。既知の問題がある1つのブラウザを含めると、関連する問題のグループを修正するために大量のコードが追加される。

新しい bugfixes: true オプションは、代わりに壊れた構文を最も近い壊れていない最新の構文に変換する。Babel 7.9リリースでは、bugfixes オプションは esmodules: true でネイティブESモジュールをサポートするブラウザのターゲットで最適に機能する。Babelチームは、今後数回のリリースでこのアプローチを改善し、Babel8でデフォルトで有効にすることを期待している。

TypeScript 3.8リリースでは、開発者はタイプ定義のモジュールをインポートおよびエクスポートできるようになった。Babelは型定義を分析せず、7.9リリース以前は、@babel/plugin-transform-typescriptは値として使用されないインポートを型のみであるかのように処理していた。Babel 7.9では、構成を変更せずに新しい型修飾子を使用でる。BabelチームのNicolò Ribaudo氏が説明した:

TypeScriptの --importsNotUsedAsValues 保存オプションと同様に、明示的なtypeキーワードがある場合にのみインポートをタイプのみと見なすように、@babel/preset-typescript または @babel/plugin-transform-typescript を構成することをお勧めします。

Reactは現在、要素作成の簡素化に取り組んでいる。目標は、従来の汎用 React.createElement 関数の代わりに、JSX要素をインスタンス化するための新しい関数をサポートし、より優れた最適化を提供することである。要素作成へのこの新しいアプローチは、Reactの実験バージョンを通してReactユーザが今日利用できる。この新しいアプローチは、Babel 7.9での次の構成を通じて活用され、Babel8.0リリースではデフォルトになる。

{
  "presets": [
    ["@babel/preset-react", {
      "runtime": "automatic"
    }]
  ]
}

 

Babel 8.0の開発が進行中であり、リリースは数か月以内に予定されている。

Babelは、MITオープンソースライセンスの下で利用できる。Babel GitHub organizationを介した貢献は歓迎されており、Babelの貢献ガイドライン行動規範に従う必要がある。プロジェクトを支援するための貢献は、Open Collectiveを介して行うこともできる。

この記事に星をつける

おすすめ度
スタイル

BT