2016-03-02 bouzuya/rally-rxjs の Source Maps をためした
bouzuya/rally-rxjs の Source Maps について検討したことを書く。
きっかけは『オープンソースのエディタ「Visual Studio Code」がChromeブラウザのデバッガプロトコルに対応。エディタから直接デバッグ可能に』という記事を読んだこと。
結論から言うとまだ使えていない。多段 Source Maps に対応できていない。
現状の bouzuya/rally-rxjs は次のような変換を経ている。
TypeScript
|
|
(tsc)
|
V
ES2015
|
|
(babel)
|
V
ES5 ... Server (Node.js) / Unit Test 向け
|
|
(browserify)
|
V
ES5 (concat) ... Client (Browser) 向け
今後、ここに uglifyjs で minify を加えるつもりだ。何段の Source Maps になるだろう……。
それぞれに理由もある。
TypeScript から ES5 に直接変換しないのは target: 'es5'
にしても Promise
の polyfill を追加してくれないことによる。 ES2015 に型を加えた TypeScript を使いたいが、動かすのは ES5 環境なので Promise
などの polyfill は必要だ。ほかにも const
なども動くのか怪しい。そこで babel
をはさむことになる。
browserify + tsify + babelify にしていないのは Server 向けと別の変換を避けたいからだ。
今度は共通の build pipeline を一度諦め、browserify + X で試してみようと思う。