TypeScriptのコンパイル時間を短縮する5つの方法

TypeScriptのコンパイル時間を短縮する5つの方法

TypeScriptのコンパイルは遅い

TypeScriptを使用すればコンパイル時に変数の型の不一致やエラー等によるバグを発見しやすくなるため多くの現場で使用されているがファイル数が多くなるほどコンパイルに時間がかかるというデメリットがある。

ファイルが100を超えるとコード量などにもよるがコンパイルに10秒以上かかることもあり、作業効率を低下させてしまうおそれがある。そのためコンパイルに時間がかからないよう以下のような対応をしておくとコンパイル時間を短縮することができる。

その1 TypeScriptをアップデートする

TypeScriptはバージョン0.9.5以降から大幅にコンパイル速度が向上しているため古いバージョンを使用している場合はアップデートするだけでコンパイル時間を短縮できる。

Announcing TypeScript 0.9.5

その2 修正したファイルだけをコンパイルする

当然のことだがTypeScriptファイルは数(コード)が多いほどコンパイルに時間がかかるため修正したファイル以外はコンパイルしないようにすることで時間を短縮できる。

タスクランナーを使用すればコンパイルするファイルが入っているディレクトリや除外するファイルの場所なども細かく指定でき、プラグインを導入すれば上書き保存したものだけをコンパイルすることも容易にできる。

その3 タスクランナーを2つ以上使用する

たとえばGruntを使用していて全ファイルをコンパイルすると時間がかかるため、これとは別のタスクランナー(Gulpなど)で修正したファイルだけをコンパイルするようにすると時間を短縮できる。

本来であればタスクランナー1つで済ませるのが理想だが都合上全ファイルを常にコンパイルしなければならないこともあるのでその場合はこのやり方が有効。

その4 エディタでビルドする

高機能エディタ(Sublime Text, Atom, WebStormなど)であればエディタからTypeScriptファイルをJavaScriptにコンパイルできる。

ただし手動でコンパイルすることになるのでコンパイルし忘れる可能性があるため個人的にはおすすめできない。

その5 typescript-simpleを使用する

typescript-simpleというTypeScriptの文字列を簡単にコンパイルするライブラリを使用するとコンパイル時間を大幅に短縮できる。(制作者の説明には「300秒かかっていたのが2秒に短縮された」と書かれている。)

コードの記述方法が通常のTypeScriptとは異なる部分があるため利用する際は互換性に注意が必要。

typescript-simpleの高速化と最近のTypeScript Compiler API周辺動向