2017-02-01 8 views
5

私は新しいですし、Angular2を実験しています。 distのフォルダ内のファイルは、私が配備のために角度2のファイルサイズを小さくする

    新しいMYPROJECT ngを
  1. CD MYPROJECT
  2. NGを取った手順ここでは、角CLIによって

    を作成された空のプロジェクトでかなり大きいですされていることを私が発見しましたビルド--prod

私のdistフォルダ内のすべてのファイルは1.1MBです!私はそれらがすべて展開に必要なファイルだと信じています。できるだけこれを落とす最良の方法は何ですか? dist folder

---更新--- 私は NGビルドを実行した後-e = PRODサイズがダウンして約500キロバイトになった--prod --no-sourcemap

--aot。これは50%優れています。しかし、この投稿Angular 2: Reduce app sizeは、ファイルサイズが< 100kbに​​なったと述べています。男がmain.a2eb733289ef46cb798c.bundle.jsが何らかの理由で452kbであるという事実を無視したようですね。下の画像のようにdistフォルダにすべてのファイルを配備する必要がありますか?または、展開のサイズを減らすためにいくつかを無視することはできますか?オンラインのどこかで、Angularチームが基本スタートアップアプリのファイルサイズを50KBに減らすことができました。

After

答えて

4

建てのサイズを小さくするには、最初で唯一のgzipファイルをご覧ください。 Webサーバーをうまく設定すると、これらのファイルだけが提供されます。あなたはあなたのindex.htmlをgzipして、それを提供することもできます。ほとんどのウェブサーバー(たとえばnginx)には、静的なgzipファイルを読み込む機能があります。これを有効にするには、あなたのnginxの設定でこれを置く:

gzip on; 
gzip_static on; 

Apacheは静的のgzipファイルをロードするために同様のモジュールを持っています。

すべての一般的なウェブサーバーには、少なくとも動的なgzipファイルを提供するオプションがあります。つまり、ファイルがWebサーバーから要求されると、ファイルは転送中に圧縮されます。これは、ビルドフォルダに表示される、生成されたgzipファイルのサイズとほぼ同じです。

さらにアプリケーションを小さくするには、aotのコンパイルを使用することをお勧めします。これはツリーシェイキングも使用します。これを有効にするには、およびアプリケーションが、本番環境を使用して構築構築するために、このコマンドを使用して取得することを確認するために:私は予告をした私のビルドで

ng build -e=prod --prod --no-sourcemap --aot 

を、私は、ファイルをgzip圧縮された場合、自分は例えば7zipを使用していること、および設定最高の圧縮率で、ファイルサイズはさらに縮小されました。ただし、クライアント側でこれらのファイルを解凍すると圧縮されていないファイルよりも多くのCPUが使用されますが、最近のCPUではこの違いを無視することができます。

コンパイルされたベンダースクリプトの中にたくさんのコメントブロック(@license)があります.Jsファイルを別のラウンドで実行して、それらを取り除き、それらの1つを再度vendor.js

更新

あなたが他の質問でアプリサイズは100キロバイト<に下って行ったことに言及。あなたはすでにそれがあります。js.gzファイルを見なければなりません。これは普通のjsファイルではなく、コンパイルされた/圧縮されたアプリケーションです。あなたが参照している50kbは、彼らのための道路地図上にあります。私の知る限り、彼らは別のアーカイブ方式との組み合わせで、独自の閉鎖コンパイラを実装しているため、彼らは閉鎖コンパイラは、JavaScriptのダウンロードを行うためのツールです(brotli)、20キロバイトにさらに低いファイルサイズを取得するために

を管理覚えていますより速く走ってください。ソース言語からマシンコードにコンパイルする代わりに、JavaScriptからより良いJavaScriptにコンパイルします。 JavaScriptを解析し、分析し、デッドコードを取り除き、残っているものを書き換えて最小化します。また、シンタックス、変数参照、およびタイプをチェックし、一般的なJavaScriptの落とし穴について警告します。

これは、パッケージ実装をangular-cliの中に隠した理由です。別の建物に変更してツールをコンパイルすることは、人々のアプリケーションをいじることなく、実装する方がはるかに簡単です。それはしばらくするだろうし、たとえそれを実装しようとしているとしても。今のところ、私は100kbがあなたにあまりにも多くを与えているフレームワークのためのかなりまともなサイズだと言う:

+0

素晴らしい解決策。更新された質問をご覧ください。 – user172902

+0

@ user172902更新された私の答え – PierreDuc

+0

ちょっと仲間、ありがとう。最後の1つの質問。それは、そのフォルダ内のすべてのファイルをアップロードする必要はありません(451kbなど)?私はそれを試して、それは動作していないようですか? – user172902

関連する問題