blog.bouzuya.net

2016-06-20 bouzuya/beater 0.4.1 をつくった

bouzuya/beater 0.4.1 をつくった。

bouzuya/beater#7 で Node.js v4 で動かないという Issue が来たので対応した。次のように version を上げた。

実装としては TypeScript -> Babel の多段変換にした。以前この多段変換をやめたという記事を 2016-03-15 に書いた。今回はその逆だ。以前より TypeScript の経験値が上がったからか、心の余裕があったからか、逆に多段変換を選択した。

TypeScript 側では --target を es2015 に、--module を commonjs にし、lib.es6.d.ts の参照は追加しなかった。

--target を es2015 にすれば lib.es6.d.ts を参照しなくて済む。これは Promise が global に定義されるということだ。polyfill で解決しようとすると dependencies を汚すのでそれは避けたかった。

--module を commonjs にすれば TypeScript, Babel 間での default export/import の解釈の違いによる問題を回避できる。

実際の ES2015 向けの polyfill は babel により補ってもらう想定だ。以前は --module を commonjs にしなかった (できなかった気が……) のだけど、今回はそれを変えて、変換時間は妥協することで解決した。

package.json もすこし見なおしていて、.d.ts の cp に cpx という npm package を使っている。Windows 環境を考えると rm や && なども避けるのが望ましいかもしれない。

Source Maps をあまり考慮していないのが怪しいのだけど、ひとまず以前よりもまともに動かせたので、記録しておく。