20
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

TypeScript 3.4のincrementalフラグを試す

Posted at

はじめに

TypeScript 3.4のリリースノートの最初で説明されているのは「Faster subsequent builds」です。 --incremental というフラグが導入されました。

incrementalフラグとは

これを指定すると、tsconfig.tsbuildinfoというファイルが作成されます。(ファイル名の変更は可能)
このファイルにはコンパイルしたファイルのバージョン(SHA256ハッシュ?)が記録されていて、変更があった分だけをコンパイルし直すようです。結果的にコンパイル時間が短縮されることが期待されます。

noEmitでは効かない

タイプチェックだけをする場合は--noEmitフラグをつけることがありますが、この場合は出力ファイルが生成されないため、tsconfig.tsbuildinfoも生成されません。結果、高速化は効きませんでした。--tsBuildInfoFileを指定しても変わらないようです。

速度計測

簡単ですが、何もファイルに変更を加えず、とあるプロジェクトでコンパイル時間を測ってみました。

$ time npx tsc --project .     
npx tsc --project .  14.89s user 0.71s system 135% cpu 11.519 total
$ time npx tsc --project .
npx tsc --project .  3.11s user 0.22s system 157% cpu 2.123 total

1回目が15秒弱で、2回目が3秒ちょっとでした。

--noEmitしても13秒ほどかかるので、コンパイル結果が不要でも出力しちゃった方が早いというジレンマ。

おわりに

--incrementalをtscに書いたら、

error TS6064: Option 'incremental' can only be specified in 'tsconfig.json' file.

と怒られました。そういうものなのでしょうか。

20
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?