2015-03-22 bouzuya/cookie-storage をつくった
週ぶり (shuburi) 2015-W13
今週は codeforkobe/sakura360 。今日は進展なし。理由としては bouzuya/cookie-storage をつくっていたからだ。
bouzuya/cookie-storage 自体はどうでもいいものなのだけど、つくる過程で Babel をためすことができた。
bouzuya/cookie-storage は ES6 : ECMAScript 6 を使ってつくった。普段は CoffeeScript や TypeScript を使うのだけど、ES6 から ES5 に変換するコンパイラを軽くでも試しておいたほうが良いと思い、JavaScript ( ES6 ) で書くことにした。
パッケージとしては npm / bower に提供するつもりで、Browser と Server (Node.js) とに両対応したいと考えた。JavaScript のモジュールシステムはまだ過渡期で、最終的には ES6 に収束するとは思うのだけど、現実的には、ブラウザで ES6 モジュールは動かず、Node.js でも CommonJS の派生っぽいモジュールが動くので、現実解としては CommonJS で書いて browserify するのが適当なんだとは思う。
今回はそのまま読んでも問題にはならないように UMD ( AMD/CommonJS の間の子 ) を使うことにした。Babel はデフォルトが CommonJS Modules/1.1 で、オプションで UMD に対応している。
Babel をコマンドラインで使ってみたのだけど、どうもやりづらいので諦めて gulp を使った。最終的には意外とすっきりした構成に落ち着いた。
bouzuya/cookie-storage の gulpfile は gulp + babel + mocha + power-assert な構成なのだけど、シンプルで分かりやすいように思う。
browser を想定しているけど、Karma とかを使うと一気に複雑になるので Node.js でテストを書いた。
date | week | day |
---|---|---|
2015-03-22 | O (33 commits) | O (+33 commits) |
よもやまばなし
週ぶりで書いた UMD 。JavaScript のベストプラクティスといった記事もあるけど、正直こういうものを手で書くのはやめたほうが良いと思う。簡潔な形で書いて変換すべき。