blog.bouzuya.net

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)

よもやまばなし

umdjs/umd · GitHub

週ぶりで書いた UMD 。JavaScript のベストプラクティスといった記事もあるけど、正直こういうものを手で書くのはやめたほうが良いと思う。簡潔な形で書いて変換すべき。