6to5 をそのまま mocha + power-assert を使うと、power-assert が上手く動かない問題をどうにかする。
使えるようになったサンプルプロジェクトはこれ:
こうなるまでを順番に書いていく。
必要なパッケージをインストール
上述したパッケージに加えて、@azu さん製の azu/espower-6to5 を使う。
$ npm install --save-dev mocha power-assert espower-6to5
6to5 は espower-6to5 経由でインストールしたものを使うことになるので、CLI で mocha を走らせる分には不要。
loader を書く
espower-6to5 を使って mocha から呼ばれるローダーの設定をする:
require('espower-6to5')({
cwd: process.cwd(),
pattern: '{.,{src,test}/**}/*.js', // 6to5 を通すファイルのパターン
});
espower-6to5 についてくる guess.js
は、test/
ディレクトリ以下の JavaScript しか 6to5 を通してくれず、プロジェクトルートにある JavaScript や test/
以外のディレクトリの JavaScript は 6to5 を使わずそのまま実行しようとする。なので pettern
を自分の都合に合わせて書く必要がある。
テストを書いてテスト実行
書いた loader.js
を、mocha に与えて実行すればできる:
$ edit src/foo.js
$ edit test/foo_test.js
$ node_modules/.bin/mocha --require test/loader test/**/*_test.js
おわり。
browserify と組み合わせるなら http://havelog.ayumusato.com/develop/javascript/e640-kameita_es6_project_skeleton.html Node だけなら https://github.com/azu/espower-6to5 あたりが参考になると思います。あとは Grunt や Gulp のプラグインで自前でつなぐ、とかですかね。
https://twitter.com/t_wada/status/561048591838351362
@t_wada ありがとうございました。
疑問
npm って依存パッケージバージョンと孫依存パッケージバージョンを一元管理できないんだろうか。今回は大丈夫だけど、テスト時は espower-6to5 の依存している 6to5 のバージョンを使うし、 アプリケーション実行時はまた別の 6to5 を使うハメになるのつらい。