テストコードをES6+power-assertで書けるespower-babel 3.0.0リリース
ライブラリをES6で書いて公開する所から始めよう | Web Scratchで紹介してたazu/espower-babelをアップデートして3.0.0をリリースしました。
espower-babelはBabelの変換 + power-assertの変換を一緒にやってくれるライブラリです。
簡単に言うとES6でテストコードを書いてMochaで動かすのを設定ファイル等を作らないで出来るようにするためのライブラリです。
詳しくは以下の記事を見て下さい
追記(2016-04-15): espower-babelは非推奨で、.babelrc
で直接power-assertを利用するのを推奨しています。
詳しくは次の記事を見てください・
3.0.0
今までespower-babelはテストファイルのみをBabel(当時は6to5ですが)で変換していて、テストからimport
したファイルについてはBabelの変換をしてませんでした。
そのため、2.x以下だとES6で書いたテストファイルから、既に変換済みのES5のコードを参照する必要があって直感的ではなかったと思います。
3.0.0では、テストファイル以外も自動的に変換するようなBreaking Changeを入れています。
記事の方もこの変更に追従させてアップデートしているので、細かく変更点を知りたい人は以下のDiffを見てみるといいかと思います。
- ライブラリをES6で書いて公開する所から始めよう | Web Scratch
- Update espower-babel by azu · Pull Request #84 · efcl/efcl.github.io
ES6に変換したくないコードをテストファイルから読み込んでいる場合は、espower-babelはBabelはbabelrcの設定ファイルを自動で使うようになってるので、以下のような設定を書くと変換しません。
{
"ignore": [
"foo.js",
"bar/**/*.js"
]
}
2015-05-11追記:
3.1.0でSource Mapをサポートしたので、エラーが出た時の行数が元ファイルとちゃんと一致するようになりました。
まとめ
- espower-babel 3.0.0からはテストファイル以外も自動でBabelの変換を行うようになった
- これにより、変換済みの一時ファイル(ES5のコード)なしでES6のみでコードとテストを書けるようになった
-
espower-babel 2.xのものを使っている場合は、テストから直接ES6のコードを参照するように書き換えると良い
- Babelが二重に変換してしまって挙動が変わる可能性はあるのか未定義(二度変換してもASTレベルでは同じに見えるけど)
- 変換したくない場合はbabelrcでignoreやonlyの設定をする
お知らせ欄
JavaScript Primerの書籍版がAmazonで購入できます。
JavaScriptに関する最新情報は週一でJSer.infoを更新しています。
GitHub Sponsorsでの支援を募集しています。