WatchifyとBabelifyでES2015とReactをする。(no Gulp)

WatchifyとBabelifyでES2015とReactをする。(no Gulp)

BabelがわりにTypeScriptを使うという雑なことを続けていましたが、Babelでも作業できるようにします。

├ public/
│  ├ js/
│  │  └ build.js # 書きだされたjs
│  └ index.html
│
└ src/
   ├ js/
   │  └ index.js # ES2015のjs
   ├ out         # ../public/jsへのシンボリックリンク
   ├ .babelrc
   └ package.json

Babelの準備

ES2015を使うにはbabel-preset-es2015が、ReactのJSXを使うにはbabel-preset-reactが必要なので、WatchifyとBabelifyに加えて、それぞれインストールします。

npm i -D watchify babelify babel-preset-es2015 babel-preset-react

Babelが走る設定は.babelrcを用意してそれに記述します。

{
  "presets": ["react", "es2015"]
}

package.jsonの準備

npm run buildでwatchifyが走るように、package.jsonのscriptsの項目にコマンドを追加します。

"scripts": {
  "build": "watchify -t babelify ./js/index.js -o ./out/built.js -v"
}

ES2015とJSXで書かれた./js/index.jsをwatchifyコマンドでbabelify経由コンパイルし、解釈できるようにした./out/built.jsをアウトプットするというコマンドです。

-vはワッチ処理結果を表示してくれるので、ちゃんと動いてるかわかりますから入れておいたほうが安心です。

./outは../public/jsへのシンボリックリンクとなっていますので、最終的には../public/js/build.jsという位置に書きだされます。

これは単なる趣味で、ダイレクトにディレクトリを指定して良いと思います。

no Gulp

特に反Gulpであるとかそういうことではなくて、Sassのコンパイルや最終的な圧縮などではGulpでポンです。

しかしちょっと試したい時にながながとGulpを用意するのはめんどくさいのでno Gulpが良いです。