Edited at

6to5 + mocha + power-assert

More than 3 years have passed since last update.

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 から呼ばれるローダーの設定をする:


test/loader.js

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 を使うハメになるのつらい。