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