15 min/d

ぼうずやのにっき

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 で試してみようと思う。