TypeScriptを使用してから、Closure Compile(高度なコンパイル)を使用してES5をターゲットにし、出力を縮小したいと思います。
Tscの代わりに tsickle を使用する必要がありますか? tscが持つすべてのオプションのサポートが不足しており、TypeScriptタイプをClosureタイプ(100%互換ではない)に変換したいという点で非常に野心的です。クロージャタイプを実際に使用する必要はありません。縮小/プロパティの名前変更が必要です。
Tscを使用してTypeScriptをES6モジュールにコンパイルし、Closure Compilerを使用してそれらを縮小することはできますか(型チェックや型ベースの最適化なしで)?
ボーナス:クロージャーライブラリを使用したい場合、この回答は変わりますか?
技術的には、ES6出力をtsc
から取得し、すぐにClosureCompilerにパイプすることができます。後者はJSを入力として受け入れるように指定されているためです。私たちはすでに多くの場所でこれを行っています。 Angularクロージャコンパイラでコンパイルされたアプリは、rxjsライブラリディストリビューションを取得し、クロージャバンドルに含めます。 https://github.com/angular/closure-demo を参照してください。
実際には、クロージャーがJSを認識する前に、tsickleのようなものを使用してJSを変換する理由がいくつかあります。
export *
をサポートしていません-tsickleはそれをexport {each, visible, symbol}
に書き換えます現在の計画では、tsickleを複数のTS 2.3エミットトランスフォームに分解することです。そうすれば、コンパイラで実際に有効にする必要があるトランスフォームをより明確にすることができます。
タイプの追加はオプションです。 tsickleの型付きモードをオフにすると、代わりに型の{?}
が出力されます。ただし、クロージャJSコードからのTypeScriptの出力を使用する場合は、クロージャの型チェッカーに型を認識させる必要があります。
新しいビルドツールをお探しの場合は、ある時点で https://github.com/bazelbuild/rules_TypeScript のBazelツールチェーンにtsickleをビルドします。それまでの間、Tsickleのメインの機能リクエストを提出して、より多くのコマンドラインフラグをサポートすることができます。 (しかし、LucidchartはすでにTsickleのフォークを維持していると思いますか?)