webpack是什麼?
webpack打包工具,可以把很多js檔案,css檔案把包成乙個js檔案。
為什麼使用webpack?
沒有模組化的缺點:
1.定義變數的問題,可讀性很差;
2.每個功能函式都有聯絡,**耦合度高,不利於修改**,維護成本高;
3.協作開發的問題,沒有打包工具就會出現很多問題;
傳統的寫法:我們引入多個js標籤
效能問題:script標籤是會造成阻塞載入;谷歌還是ie瀏覽器,每次只能載入6個標籤
作用域問題:
如果有30個標籤,要分五次才能載入完;
問題:每個script標籤都共享同乙個全域性作用域,這很有可能導致汙染全域性變數;
想暴露出去的暴露出去,不想暴露出去就不要暴露出去;
沒有webpack,是怎麼樣去寫模組化的語法呢?
1.模組化一
1.1.通過立即執行函式包裹起來,然後通過window暴露出去;
1.2.問題:script標籤的引入順序問題
2.模組化二
gulp、grunt等工具,通過注釋的方式
2.1.問題1:我們修改乙個檔案,可能就打破了依賴
2.2.問題2:會造成死**
3.模組化三
node commonjs
3.1.問題:沒有瀏覽器的支援
common.js有兩個語法,引入和匯出;
匯出:module.exports=math;
在main.js中引入:var math=require("./math.js");
3.3. node -v ,node main.js
4.模組化四
打包工具browerify
問題:commonjs語法是靜態的
js打包要按需載入,首頁裡面沒有的js功能,不必載入出來,如果全部載入,會導致使用者開啟頁面很慢很慢;
懶載入也就是按需載入,但是browerify就沒有這個功能,只是把所有的js檔案打包成乙個js檔案;
5.模組化五
amd(require.js)、cmd(sea.js):非同步載入
問題:太動態了,js檔案變大了
6.模組化六
es6標準
問題:瀏覽器載入起來很慢
解決方法:webpack,任意模組化的語法都支援,按需載入,非同步打包
JS模組化 了解
之前有的 命名空間,commonjs,amd cmd umd,es6 module 1.什麼是命名空間 庫名.類別名.方法名 弊端 在命名空間重複生命,要記住完整的路徑名 而且很長 var namespace namespace.type namespace.type 已經定義了就是它自己,沒有定義...
什麼是模組化?模組化的好處
1.高內聚低耦合,有利於團隊作戰,當專案很複雜的時候,將專案劃分為子模組分給不同的人開發,最後再組合在一起,這樣可以降低模組與模組之間的依賴關係體現低耦合,模組又有特定功能體現高內聚。2.可重用,方便維護,模組的特點就是有特定功能,當兩個專案都需要某種功能的時候,我們定義乙個特定的模組來實現該功能,...
什麼是模組化?模組化怎麼實現?
前言 增加印象,留下腳印 忘記還可以翻一翻 奧利給。1,什麼是模組化 公司裡乙個專案是有很多程式設計師一起開發的,例如 多人運動 這個專案 有程式設計師a 程式設計師b 程式設計師c 程式設計師a 寫了 aaa.js 裡面有幾千行 幾萬行 程式設計師b 寫了 bbb.js 裡面有幾千行 幾萬行 程式...