Babelについてまとめました。
理解すべき要点は以下です。
- BabelはJavaScriptをトランスパイルするツール
- Babelはnpmでパッケージをインストールする必要がある
- Babelの設定は
.babelrc
というファイルに記述する - create-react-appなどを使うと自動的にBabelの設定が行われる
Babelとは
Babelとは、JavaScriptのES2015のような新しい記法をES5のような古い記法に変換するためのツール。
JavaScriptは毎年新しい仕様を追加しているが、新しい仕様がブラウザに対応しているとは限らない。
そこでBabelを使って新しい記法を古い記法に変換することで、新しい記法でも古いブラウザで動作させることができる。
このコードの変換をトランスパイルという。
インストール
Babelはnpmでパッケージをインストールして使う。
Babelを使うには以下のパッケージが必要。
- @babel/core - Babel本体
- @babel/cli - Babelをコマンドラインから使うためのツール
- @babel/preset-env - 最新のJavaScriptをトランスパイルするためのツール
npm i -D @babel/core @babel/cli @babel/preset-env
Babelは開発環境で使うものなので-D
オプションをつけてパッケージをインストールする。
設定
Babelの設定はプロジェクトのルートに.babelrc
またはbabel.config.json
を作成して行う。これらのファイルにはBabelがどのようにコードを変換するかを設定する。
.babelrc
は主に特定のディレクトリのみの設定を記述する。
.babel.config.json
は主にプロジェクト全体の設定を記述する。
設定例:ES6→ES5
JavaScriptのES6の記法をES5に変換するには.babelrc
を以下のようにJSON形式で記述する。
{ "presets": ["@babel/preset-env"] }
presets
はBabelの複数のプラグインをまとめたものであり、どのように変換するかに合わせてパッケージをインストールして.babelrc
に記述する。
presets
は配列の形で記述し、後に書いたものから先に読み込まれる。
設定例:React
Reactを使う時は、@babel/preset-react
をインストールして、追加で設定を行う必要がある。
npm i -D @babel/preset-react
.babelrc
を以下のように記述する。
{ "presets": ["@babel/preset-env", "@babel/preset-react"] }
ただしcreate-react-appやViteなどのReactの環境構築を行うツールを使うと自動的に設定される。
Babelの実行
実際にBabelでトランスパイルを行うには以下のコマンドを実行する。
npx babel src --out-dir dist
このコマンドではsrc
ディレクトリのファイルをトランスパイルしてdist
ディレクトリに出力する。
--out-dir
はトランスパイル後のディレクトリを指定する。