2016-10-03 7 views
1

私はAngularのウェブサイトを持っていますが、私は自分のウェブサイトのパネルに、パネルにいくつかの役割があり、いくつかの管理者の役割といくつかの異なる種類のユーザーがいます。 。各ライブラリ/ソースをルートと役割に従ってロードするには、Angular?

問題が何ですか?私が必要としているファイル*.jsをすべてbundle.jsという名前のファイルにまとめていますが、うまくいっていますが、ファイルが重く、1つのファイルだけでプログラムをデバッグするのは難しいです! bundle.jsは2MB以上で、私は本当にそれを変更する必要があります。

たとえば、私はd3という重いサイズのライブラリであり、ただ1つのルートにあるロールを使用しています。だから、ちょうど何らかの種類のユーザーがそれを必要とするかもしれないとき、なぜそれをbundle.jsに加えるべきですか?

質問:

は、どのような方法がありますが、私は、単一ページのアプリケーションを持つことができますが、それでも各ビュー/ルートは、独自の外部JavaScriptを含めますか?

ファイルのバンドルは危険ですか? 1つのjsファイルにすべてのファイルをバンドルする実際のプロジェクトはありますか?

+0

2MBは大きくはありません。私の現在のプロジェクトでは、2バンドルの4.7MBの:第三者のlibsとプロジェクトのコード – Ivan

+0

@イワン私は彼が正しいと思う、2メガバイトはjsの大きなファイルの一種です!いずれかをデバッグするのは難しい – M98

+0

@Kermani私は開発者と環境を守ってwebpackを使用しています。 dev環境はバンドルを生成しないので、デバッグが容易で、毎回ビルドが完了するまで待つ必要はありません – Ivan

答えて

1

この質問は、あなたの役割をどのように実装し、どのようにコードを整理したかによって大きく異なります。

ユーザーと彼の役割に応じてモジュールを遅くロードする問題については、このジョブのように見えるocLazyLoadライブラリを見てみることができます(遅延ロードモジュール)。

また、アプリケーション用に複数のバンドルを作成することもできます(各役割に1つずつ)。サーバーサイドスクリプトを使用して必要なものを読み込むこともできます。

バンドルは危険ですか?

多くの種類のユーザーがいる場合や、最初のページの後にユーザーがどこに行くか分からない場合(たとえば、数百の画面を持つアプリなど)、問題が発生する可能性があります。

ただし、大きなファイルを1つ読み込むのにネットワーク親和性が高いので、常に束ねる必要があります。

事実は、あなたがあなたのニーズに応じて、...すべてはアプリがどのように機能するかに依存など、あなたは賢明にバンドルしたページ、またはユーザーロールの各ページまたはグループに対して1つのバンドルを作成する必要があり

ですどのようなことが起こっても、共通の機能、モジュール、ルーティングなどを格納している場所と、表示する役割やページに応じて他のものをいくつかバンドルする必要があります。

+0

@ n00d13(そのようなハードな名前)に同意しますが、ファイルをバンドルすることはデバッグのために難しいと思います関数が問題を抱えていて、デバッグして大きなファイルで見つけるのが難しい場合があります。2 MBを超えると言いました。 – M98

+0

ソースマップを使用している場合 – n00dl3

関連する問題