babel7で@babel/node(旧babel-node)を使う

2018.06.21

最近はGatsbyJS v2を触っていることもあり、まだbeta版なbabel7を使うことが多くなってきた。

Babel 7 リリースプレビュー - Qiitaで取り上げられているように、スコープ付きのパッケージ名に変更されているのが大きな変更でパッケージ名の対応がよくわからず30分ぐらい悩んでしまった。

@babel/node(babel-node)とは?

babel-nodeはbabelした結果に対してnodeしてくれるもの(という認識) 適当にnodeを書きたいときに非常に便利。

v6まではbabel-nodeをインストールしてCLIとして実行するだけで良かった。

使い方

1 パッケージのインストール

$ yarn add @babel/core @babel/env @babel/node

2 適当に.babelrcを書く。 (babel7ではbabel.config.jsを書くのが推奨されてそうな雰囲気を感じる)

{
  "presets": ["@babel/preset-env"]
}

3 適当にnpm scriptsとして定義

package.json
{
  "scripts": {
    "start": "babel-node src/index.js"
  }
}

4 実行

$ yarn start

公式のDocumentを読むのが一番

What is Babel? · Babel でnext版(v7)のドキュメントが読めるのでこのあたりに目を通しておくのがよさそう。 特にUpgrade to Babel 7 · Babelを見るとどんな変更が行われたのが読めるので良い。