最後に、ここまで見てきたBabelの特徴をまとめます。
- Babelとはコードをコードに変換するトランスパイラである。
- 変換ルールはプラグインやプリセットで提供されている。
babel
コマンドを直接叩いて変換することもできるが、ライブラリごとに独自の設定方法が用意されていることが多い。- 変換のステップは Parse → Transform → Generate の3ステップ。
- Parserをカスタマイズすることはできない。
- つまりECMAScriptではないものはParseが失敗し、変換はできない。
- プラグインが関われるのは Transform だけ。
- Generateはどうでもいい。
- プラグインは、ノードの種類に対する変換メソッドという形で書く。
- DOMのように変換後のノードを構築して置き換える
babel-types
がとても重要な役割を果たす。- 変換はReactiveに実行される。
- ミスると無限ループするやつ
- プラグインのテストはけっこう便利。
結論としてそれほど自由度はなさそうな感じします。