2017-07-11 14 views
6

Typescriptを使用して、クロージャコンパイル(高度なコンパイル)を使用して、ES5をターゲットにして出力を小さくしたいです。クロージャコンパイラ+ Typescript

は、私は、TSCの代わりにtsickleを使用する必要がありますか?それはtscが持つすべてのオプションをサポートしていないので、Typescript型をClosure型(100%互換ではない)に変換したいという点では非常に意欲的です。私は本当に閉鎖型を使用する必要はありません。私は縮小/プロパティの名前を変更する必要があります。

私はモジュールをES6と(型チェックやタイプをベースoptimzationsなし)、それらを縮小化するために閉鎖コンパイラを使用するように活字体をコンパイルするTSC使用することはできますか?

ボーナス:私は閉鎖ライブラリを使用する場合は、この答えを変更していますか?後者は、入力としてJSを受け入れるようにspec'edされるよう

+0

Angular core devのみがこの質問に正しく答えることができました。 –

+0

@ChadKillingsworth、これはAngularアプリではありません。 –

+0

私は知っていますが、私はこのレベルの風景を理解している私が知っている唯一の開発者です。 typescriptコンパイラ、tsickleとclosure-compilerはかなり特殊な知識セットです。そして、これは非常に重要ではない質問です。 –

答えて

4

技術的に、あなたは、tscと閉鎖コンパイラにすぐパイプそれをからES6出力を取ることができます。私たちはすでに多くの場所でこれを行っています。クロージャコンパイラでコンパイルされた角型アプリケーションは、rxjsライブラリ配布を受け取り、それをクロージャバンドルに含めます。実際にはhttps://github.com/angular/closure-demo

を参照してください、我々はクロージャがそれを見る前JSを変換するためにtsickleのようなものを使用するにはいくつかの理由を見つけます。

  • 列挙、
  • 閉鎖ES6を有するいくつかの制限を有している(IIUCをまたはロールアップ)閉鎖に動作しない放射例えば、それは、現在サポートされていないexport * - tsickleのexport {each, visible, symbol}
  • に加えること再書き込みJSDocアノテーションは、コードの構造を理解して最適化を改善し、印刷する警告の数を減らすのに役立ちます。

私たちの現在の計画は、tsickleを複数のTS 2.3 emit変換に分解することです。次に、どの変換が実際にコンパイラで有効にされる必要があるかを明確にすることができます。

タイプの追加はオプションです。 tsickleの型付きモードをオフにした場合は、型の代わりに{?}を印刷します。しかし、クロージャーJSコードからのTypeScriptの出力を使用したい場合は、クロージャータイプチェッカーでそのタイプを知りたいと思うでしょう。

新しいビルドツールのゲームであれば、Bazelツールチェーンにtsickleをhttps://github.com/bazelbuild/rules_typescriptに作成します。その間に、より多くのコマンドラインフラグをサポートするために、Tsickleのメインの機能要求を提出することができます。 (しかしLucidchartはすでにTsickleのフォークを維持していると思います)

+0

私たちは:)また、私たちはまだそれを使用していないが、bazelは素晴らしいです。私は最初に発表されて以来、ロードマップに従ってきました。 –

関連する問題