1

私は 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 つしかないので、修正ははるかに簡単です。

4

0 に答える 0