2017-05-20 1 views
1

すでに引数を使用しています。Dart-dart2jsとそれ以上のサイズ最適化

私は出力を見て、import 'dart:htmlが出力ファイルサイズの問題を引き起こすことが分かりました(2kbの.dartファイルは182kbの.jsファイルになります)。たとえば、SVGパッケージをインポートしますが、私のコードでは<svg> DOM要素には触れません。

svg DOM要素を使用するかどうかはコンパイラが分かりません。そして私はvarの使用がその動作の理由の1つであることを理解します。

しかし、varのキーワードを使用しない場合、コンパイラは未使用のパッケージや機能をすべて削除するのに十分な '電力'を持っていません。

特定のパッケージのインポートを禁止するための指示がありますか?今はビルトインパッケージを意味します。私はIntelliJ IDEAを使用していますが、Dartのデフォルト設定で何かを変更することはできません。

UPD:

import 'dart:html' show querySelector, Element 

のみ、そのメソッドやクラスをインポートするために使用しようとしましたが、ファイルサイズは182キロバイトまだあります。

私が今見ている唯一の解決策は、デフォルトの 'dart:html'パッケージのいくつかのストリップバージョンを作ることです。 WebGL、SVGなどの機能がないもの。

おそらくDartコンパイラはうまく動作しますが、使用しないでコードが使用するメソッドとクラスがいくつかあります。初期のパッケージメソッドは、いくつかの要素がSVGかどうかをチェックしています。

+0

でビルドします。' release'と 'querySelector'建物とhtml'プロジェクトをサイズは '37kb - main.dart.js'となっています。 1つ前のステップは、最小限のプロジェクトとは対照的です。 –

答えて

1

何もインポートしない場合でも、最小限の出力サイズが得られます。 Dartは、継承とミックスインを持つクラスのような多くの機能を提供しています。さらに、dart2jsの出力には、これらの機能を実装するコードが含まれています。 これは、jQueryのようなJSライブラリを追加するようなものです。 したがって、main() {}はすでに数十kbの出力サイズになります。別の行のコードを追加すると、おそらく追加のバイト数が追加されます。

pub buildデフォルトでは、ツリーシェイクと縮小が行われるため、追加オプションは必要ありません。

関連する問題