2016-10-04 29 views
2

新手前端開發人員在這裏。在過去,爲了包含第三方jquery插件,通常的做法是在HMTL中包含一個<script>標籤,HMTL通常引用一些託管的js/css文件。託管的jQuery插件與npm包有什麼區別?

現在使用npm包,你通常做npm install package_nameimport xx from 'package-name'。而且還有一些webpack會發揮作用,這隻會讓事情變得更加混亂。我知道在使用webpack時,你不應該把第三方的jquery插件綁定到最終的bundle.js輸出。這是否意味着部署時,建議使用託管的css/js文件來解決依賴關係?

這兩種方法有什麼區別?一個用於開發,另一個用於部署?

回答

0

我認爲差異在於web開發中的新趨勢有新的要求,例如資源的延遲加載,所以現在,在html中包含腳本的舊方法並非有用,因爲它不符合要求

1

導入第三方模塊(不僅僅是)它有助於編寫更多模塊化的代碼,並有助於將代碼拆分爲多個文件。這種模式的優點是,您不必通過在您的html腳本中明確定義來手動解決依賴關係。當一個項目增長時,很有可能失去對所有這些文件的控制,搞亂包含它們的訂單並最終破壞一切。在導入的情況下,您可以在功能中定義什麼是依賴關係,並且不依賴於將文件包含在html文檔中的順序。從所有瀏覽器,甚至從節點到現在,本地都不支持導入。所以,這裏是Babel和webpack進場的時候。在你開發的時候,導入應該被翻譯成瀏覽器和節點可以理解的東西,你可以使用babel來做這件事(從來沒有和Webpack一起工作,但可能你也可以做同樣的事情)。 Babel和Webpack將確保依賴性得到解決,最終將產生另一個js文件,它將被編譯爲瀏覽器和節點將理解的純javascript。 Webpack和babel應該用於開發和部署。

還有其他一些模式可以用來包含像amd模式和common.js模式這樣的模塊(它與導入非常相似)。

相關問題