2017-10-15 101 views
0

我是jspm的新手。我有requrieJs背景。JSPM bundle vs requireJs混淆

jspm綁定編譯所有依賴到一個大文件是不是真的?像jquery,jquery-ui,bootstrap,數據庫到其他50個項目中使用的項目?

如果是,那麼有什麼好處?如果需要像requrieJs那樣獲取物品,它會不會更快?

回答

2

默認情況下,jspm不綁定您的依賴關係。每個依賴項都是自己導入的。所以如果你有三個文件,比如說main.js,smth.js和jquery.js,一旦System.import被調用,jspm就會一個一個地要求它們。對於靜態依賴關係(如ES6模塊),它發生在代碼執行之前。但是你也可以在運行時需要額外的模塊。

背後的想法是,捆綁並不是真正需要HTTP/2。 jspm知道整個依賴關係樹,它可以並行請求所有依賴關係。然後,所有文件將通過相同的網絡連接傳送,這應該與構建時捆綁它們時的相同。

但是由於HTTP/1仍然很常見,jspm提供了構建CLI的軟件包&。但是這些命令默認只將一切放在一個大文件中。該過程是高度可配置的。你可以排除某些依賴如jquery,並將它們放在一個單獨的包中,甚至可以從CDN加載jquery。有關更多信息,請參閱https://jspm.io/docs/production-workflows.html#creating-a-bundle如何排除/包含模塊。

+0

Thankx。我有更多的問題 (1)如果我使用http/2服務器,我不需要捆綁,它的工作方式就像requirejs?對 ? (2)我可以在DOM中看到導入的js css文件嗎? – django

+0

1)不,你可以跳過捆綁,但我建議檢查性能是否足夠好2)afaik否,但你會看到什麼已加載在開發人員工具 –

+0

的網絡選項卡好吧,我明白了。如果我想跳過捆綁,我需要一個咕task任務來縮小項目中的所有js css文件,甚至用'''jspm install''''''''''''''' JSPM可以實現縮小但不捆綁的方式嗎? – django