wepack學習筆記
webpack突出點是程式碼分割,模組化。包括entry、output、loaders、plugins。其中loaders中有很多規則,用loaders出來,loaders又包含與編譯相關、樣式相關、檔案相關。主要是用來處理檔案、把這些檔案轉化成對應模組。plugins參與整個打包過程,打包最佳化和壓縮。還可以配置編譯時的變數。
loaders可以讓webpack處理那些非js檔案,如.vue檔案(webpack只能理解js)
--D和--S的區別?
--D等價於 --save-dev
--S是--save的縮寫
--D的安裝依賴用於開發環境,儲存在devDependencies
--S依賴的檔案用於生產環境,也是線上環境,整個專案必須依賴的檔案,例如jQuery。
目前的webpack已經到了4時代,以前的一些命令列可能不能 用了,例如:
webpack demo.js bundle.demo.js
就會報錯。
現在要用
webpack demo.js -o bundle.demo,js
你在執行時還可能報需要你安裝webpack-cli或者wenpack-command.這時候你需要全域性安裝webpack-cli。然後在使用npm install webpack --save-dev即可
babel Runtime transform區域性墊片,為開發框架準備
babel-polyfill全域性墊片,為開發應用準備
最後,webpack用來打包最終還是生產html,css,js,無非裡面打包會出現程式碼分割,模組化,提取公共程式碼,把打包後的css和js放在html中。例如用style-loader就可以把css放在html 的meta中,程式碼公共提取用commonchunkpligin。最後還可以配合gulp,進行自動化部署。gulp的主要本領是用來排程,編譯還是要靠webpack。gulp可以讓你生成的程式碼透過執行命令自動上傳的服務端。gulp的核心是管線化思想。用pipe一層層的管道來處理。現在webpack到了4時代,程式碼分割和懶載入已經很成熟,它的主要目的還是未來讓頁面更快的展現出來。提高首屏的速度。
模組熱更新和瀏覽器重新整理不是一回事,模組熱更新是更高階別的重新整理瀏覽器。可以在你修改程式碼後,不用手動重新整理瀏覽器,自動看到修改後的結果。
在wepack中經常用到的是commonjs和es6語法規範
commonjs特點:動態載入,每個模組都是一個物件,因為只有在執行的時候才能得到這個物件,導致完全沒有辦法在編譯時做“靜態最佳化”(例如做型別校驗)。
es6的特點:靜態解析。你看每個es6模組在使用之前都要提前引入。es6中的模組並不是物件,而是透過export命令顯示指定輸出程式碼,再透過import命令輸入。這種叫編譯時載入,或者叫靜態載入,由於是在編譯時就完成模組載入,比commonjs效率要高。因為commonjs是執行時載入。程式碼執行是打包,編譯、執行。載入的也不是整個模組。因為你在es6模組中經常會看見一個模組中會有好多export匯出。
我們可以從上述看到,es6的特點是靜態解析,commonjs的特點是動態解析。es6要想實現按需載入,可以用tree-shaking(樹搖晃,把枯葉子搖下來,也就是把無用的程式碼去除)。可以做到減小打包後程式碼的體積。縮小應用的載入時間。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1978/viewspace-2806465/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- numpy的學習筆記\pandas學習筆記筆記
- IT學習筆記筆記
- 學習筆記筆記
- 【學習筆記】數學筆記
- 《JAVA學習指南》學習筆記Java筆記
- Elasticsearch學習筆記Elasticsearch筆記
- Scala學習筆記筆記
- MySql學習筆記MySql筆記
- jQuery 學習筆記jQuery筆記
- react學習筆記React筆記
- 學習筆記(4.3)筆記
- 學習筆記(4.4)筆記
- 學習筆記(3.29)筆記
- 學習筆記(4.1)筆記
- AOP學習筆記筆記
- AspectJ學習筆記筆記
- 學習筆記(3.27)筆記
- 學習筆記(4.2)筆記
- golang 學習筆記Golang筆記
- Zookeeper學習筆記筆記
- 學習筆記(3.24)筆記
- 學習筆記(3.25)筆記
- 學習筆記(3.21)筆記
- GitHub學習筆記Github筆記
- jest 學習筆記筆記
- typescript 學習筆記TypeScript筆記
- Echarts學習筆記Echarts筆記
- js學習筆記JS筆記
- shell學習筆記筆記
- Dubbo 學習筆記筆記
- SVN 學習筆記筆記
- 笨笨學習筆記筆記
- vue學習筆記Vue筆記
- redis學習筆記Redis筆記
- PureMVC學習筆記REMMVC筆記
- gitee 學習筆記Gitee筆記
- 機器學習學習筆記機器學習筆記
- Flutter 學習筆記Flutter筆記