2017-10-15 6 views
0

jspmの新機能です。私はrequrieJsの背景を持っています。JSPMバンドルとJSTの混乱との対話

jspmはすべての依存関係を1つの大きなファイルにコンパイルするのは本当ですか? jquery、jquery-ui、bootstrap、データベースをプロジェクトに使用されている他の50個のplguinと同じように使用できますか?

「はい」の場合、「何がメリットですか? requrieJsのように必要なときにアイテムを取得するほうがずっと速いでしょうか?

答えて

2

デフォルトでは、jspmは依存関係をバンドルしません。すべての依存関係はそれ自身でインポートされます。したがって、main.js、smth.js、およびjquery.jsという3つのファイルがある場合、jspmはSystem.importが呼び出されるとすぐにそれらを1つずつ必要とします。静的な依存関係(ES6モジュールなど)では、コードが実行される前に発生します。しかし、実行時に追加のモジュールを要求することもできます。

HTTP/2ではバンドリングが実際には必要ないという考えがあります。 jspmはすべての依存関係ツリーを認識し、すべての依存関係を並行して要求できます。その後、すべてのファイルが同じネットワーク接続を介して配信されます。これは、ビルド時にバンドルした場合とほぼ同じです。

しかし、HTTP/1はまだ一般的なので、jspmは&ビルドCLIを提供しています。しかし、これらのコマンドは、デフォルトですべてを1つの大きなファイルに入れるだけです。プロセスは高度に構成可能です。 jqueryなどの特定の依存関係を除外して別のバンドルに入れたり、CDNからjqueryをロードしたりすることもできます。 exclude/includeモジュールの詳細については、https://jspm.io/docs/production-workflows.html#creating-a-bundleを参照してください。

+0

ありがとうございます。私はより多くの質問があります (1)http/2サーバーを使用する場合、バンドルする必要はありません。requirejsのように動作しますか?右 ? (2)DOMにインポートされたjs cssファイルを表示できますか? – django

+0

1)いいえ、バンドルをスキップすることはできますが、パフォーマンスが十分かどうかを確認することをお勧めします。2)afaik noですが、デベロッパーツールのネットワークタブに読み込まれた内容が表示されます –

+0

バンドルをスキップしたいのであれば、プロジェクトのすべてのjs cssファイルを縮小するための不快な作業が必要になります。 '' 'jspm install' 'で埋められていますか? JSPMが細分化を行うことはできますが、バンドル化はできませんか? – django