webpack 學習筆記
Chapter 1
- webpack 默認配置⽂文件:webpack.config.js
- 能夠經過 webpack --config 指定配置⽂文件
- 經過 npm script 運⾏行行 webpack,package.json裏的script下配置。
Chapter 2
- 熱更新:webpack-dev-server(WDS)
- 熱更新:第一次打開(1-2-A-B),更改文件熱更新(1-2-3-4)
-
文件指紋:css
- hash 字體和圖片
- Chunkhash:js(和 webpack 打包的 chunk 有關,不不同的 entry 會⽣生成不不同的 chunkhash 值)
- contenthash:css
-
代碼壓縮:html
- js:內置unglify-webpack-plugin
- css:optimize-css-assets-webpack-plugin和cssnano.
因爲是單獨生成css,須要刪除style-loader(這個是用來生成css插入header標籤的)
- html:html-webpack-plugin
Chapter 3
Chapter 4
-
構建配置抽離成 npm 包npm
- 經過 webpack-merge 組合配置
- 冒煙測試:測試打包後是否構建報錯,測試是否有html,css,js文件輸出。
- 單元測試:mocha + chai(斷言庫)
- 測試覆蓋率:istanbul
- 持續集成ci:Travis
- git commit 規範:規範git commit提交信息,自動生成change-log.
-
版本號規範:json
Chapter 5
- package.json 中使用 stats
- 速度分析: speed-measure-webpack-plugin
- 體積分析: webpack-bundle-analyzer
- 使用高版本:node和webpack
- 多進程多線程:webpack4原生:thread-loader
- 並行壓縮: terser-webpack-plugin 開啓 parallel 參數
- 分包:分離基礎庫:html-webpack-externals- plugin
- 進一步分包:預編譯資源模塊: 使用 DLLPlugin 進行分包,DllReferencePlugin 對 manifest.json 引用
-
使用緩存構建:緩存
- babel-loader 開啓緩存
- terser-webpack-plugin 開啓緩存
- 使用 cache-loader 或者 hard-source-webpack-plugin
- 縮小構建目標:好比 babel-loader 不解析 node_modules
- 減小文件搜索範圍
- 圖片壓縮:imagemin
- tree shaking:去除沒有用到的js和css
- 動態polyfill: 識別 User Agent,下發不一樣的 Polyfill
歡迎關注本站公眾號,獲取更多信息