2016-12-14 4 views
1

Angular 2はAngularよりもよく見えますが、NPMを使用すると問題が発生します。これは私の仕事では許されません。しかし、私が持っている大きな疑問はなぜNPMが必要なのかということです。 Angular with CDNバージョンを使用していますが、これは常にローカルバージョンより優れていると主張しています(キャッシングが改善されています)ので、NPMマネージャとCDN参照を使用する利点は何ですか?なぜプロジェクトのローカルサイズを成長させるのですか?Angular 2:なぜCDN参照の代わりにNPMマネージャを使用するのですか?

今日、私はWEB開発でNPMをどこでも使用しています。 私は突然のWEB開発のすべてが、ローカルリソースと一般的なオンラインリソースの両方に移行し始めた理由を理解したいと思います。 私は説得力のある説明、なぜ1つを選択したのかを指摘する良い記事/ブログを探しています。

+0

がNPMはばかげている使用することはできません。ここで

は振るツリーについていくつかの詳細情報です。多くのブログがjs CDNライブラリがなぜ彼らが主張したようにいつも利点を持っているわけではないことを説明します。 –

+0

申し訳ございませんが、弊社では厳重なプライバシーポリシーを設けており、EULA条項があるためNPMを使用することはできません。 – user2929192

答えて

0

主に現代のWebアプリケーションがrequireJSや(Angular2の場合)SystemJS、commonJS、CDNソースなどのような何らかの依存関係やモジュールローダーを使用するため、新しいリソースhttp接続が必要になるため、

+0

CDN(コンテンツ配信ネットワークを表す)は、同じではなくオンラインで配信できますか?なぜそれらのモジュールがローカルでなければならないのか、オンラインリソースへの参照ではないのか分かりません。 – user2929192

+0

はい、私はrequireJSで使用できます。しかし、CDNリソースがbuidの前にロードされることを保証することができないため、 "shim"依存関係で使用する場合、requireJSオプティマイザを使用してビルドを行うことはできません。 configがCDNをサポートしていても、実際にCDNにすべてのサードパーティライブラリがある場合、ネットワーク接続によってアプリの読み込みが遅くなります。 –

2

Angularのメリットの1つは、アプリケーションバンドルを特定のアプリケーションニーズに合わせて調整できるようにすることです。

これは、あなたが、彼らはフレームワークを構成する小さなモジュールの数で構成されていることがわかります角度NPMパッケージを見れば1つのサイズはCDN

からすべての生命維持のダウンロードをフィットでは不可能です。

"Tree shaking"というテクニックを使用すると、バンドラはコード依存性について静的分析を実行し、参照モジュールのみを含むバンドルを作成できます。これにより、バンドルのサイズが大幅に縮小されます。

http://www.syntaxsuccess.com/viewarticle/tree-shaking-in-javascript

+0

私はTreeShakingなどを取得しますが、同じことはモジュールのオンラインと関係ないのはなぜですか?なぜ彼らは私のローカルサーバーに存在する必要がありますか?私が5つのプロジェクトを似たようにすると、モジュールのコピーが5回ずつ作成されます。5. CDNを使用するか、オンライン版を使用すると、5つのプロジェクトはすべて同じオンラインソースを指し、ローカルスクリプトは0になります。 – user2929192

+0

「ビルド」時に最適化されたバンドルを作成できるように、ファイルをローカルに保存する必要があります。 – TGH

関連する問題