私は TS コンパイルの複雑なワークフローを持っており、ウォッチャーをより高速に (そしてスマートに) したいと考えています。私は現在、Grunt の開始時だけでなく時計の変更時にも実行される 3 つの異なる TS コンパイルを持っています。
grunt-ts
構成:
https://gist.github.com/Vadorequest/f1fb95ab4bbc786f420b
grunt-watch
構成:
https://gist.github.com/Vadorequest/eaa82c292a5d3e1ee51f
現在動作しています。しかし、一連のファイルに属する TS ファイルに変更が加えられるたびに、すべてのファイルを再コンパイルするには時間がかかりすぎます。コンパイルする必要があるものだけをスマートな方法でコンパイルする方法を探しています。(つまり、A.ts が B.ts を継承する場合、B が変更された場合、A も再コンパイルする必要があります。WebStorm IDE はそのFiles Watchersを使用してそれを実行できるため、可能であるはずです)
https://github.com/TypeStrong/grunt-ts#fastで fast-compile について何かを読みましたが、それを使用できるようには見えませんが、混乱しています。( https://github.com/TypeStrong/grunt-ts/issues/293を参照)
セットアップを改善できると思うので、解決策とアドバイスを探しています。サーバー側の TS ファイル、さらにはサーバーとクライアント間で TS ファイルを共有することは素晴らしいことですが、理解と維持が難しい多くのコンパイル ワークフローが追加されます。たぶん、最近の機能を使用するtsconfig.json
と役立つでしょうか?アドバイスをいただければ幸いです。
詳細:
- serverCommonJs: サーバーは、コントローラーやモデルなど、アプリケーションを開始する前にコンパイルされた TS ファイルを使用します。
- clientCommonJs: ほとんどのクライアント スクリプトは、AMD ではなく CommonJs にあります。これらはすべて連結および縮小されており、大量のセットアップが必要な AMD よりも commonJS を使用する方がはるかに簡単だからです。
- amd: 一部のファイルは、サーバーまたはクライアント、あるいはその両方で使用されるかどうかにかかわらず、AMD でコンパイルされます。
私のコンピューターでは、1 セットのファイルをコンパイルするのに約 1.5 秒から 2.5 秒かかります。コンパイルされると、それらはすべて一時フォルダーにコピーされ、ブラウザー (アセット) に提供されます。そのため、簡単に 5 ~ 10 秒かかります。変更されたファイルのみをコンパイルしてコピーすると、はるかに高速になります。
LESS ファイルにも同様の問題がありますが、それは別の話です。LESS ファイルのセットは 1 つしかないので、修正ははるかに簡単です。