本文介紹的內容包括:前端
splitChunks
分離公共代碼塊,從而優化運行時加載性能;dllPlugin
預構建公共代碼塊,從而優化編譯時的構建速度。webpack-bundle-analyzer
輸出構建報告Demo下載vue
new_years_festival
和
spring_festival
兩個頁面,
index.js
爲頁面入口文件(必須),
config.json
爲多頁面配置文件(必須)。
chunk-vendors.js
文件中,
庫越多、頁面越多,這個vendor就越龐大。
new_years_festival
頁面引用的第三方庫有
vue
,
spring_festival
頁面引用的第三方庫有
vue
和
vue-router
。
chunk-vendor
的打包策略,兩個頁面公共引用的代碼塊打包在
chunk-common.js
spring_festival
中的第三方庫抽離爲
spring-festival-vendor.js
,裏面是關於
vue-router
的內容(能夠根據須要決定是否抽離)。
vendor.dll.js
包含第三方庫
vue.js
和本身的公共庫
utils.js
如未特殊說明,如下均爲vue.config.js
中的配置webpack
在最初的寫文計劃中是沒有這一部分的,以前寫過一篇文章 webpack編譯速度提高之DllPlugin,評論中有個道友提出了疑問,乾脆就在這裏加點篇幅說明了。其實配置方法跟上篇文章基本一致。git
a. 首先定義一個webpack.dll.config.js
,內容基本同樣,就再也不貼了
b. 其次在vue.config.js
中加上配置 github
a. 在vue.config.js
配置 web
package.json
中定義腳本命令
"scripts": { "analyze": "ANALYZE=true vue-cli-service build" }, 複製代碼
c. 執行npm run analyze
並訪問localhost:8888
便可spring
4000
,目標接口爲
http://localhost:300/api/get_info
,設置代理以後訪問
http://localhost:4000/api/get_info
便可。
完整Demo下載vue-router
在實踐多頁面過程遇到一個問題:在vue.config.js
中配置publicPath
字段的時候提示錯誤:ERROR Invalid options in vue.config.js: "publicPath" is not allowed
。vue-cli
版本是3.3.0
。官方解釋是:vue-cli
相對路徑的 publicPath 有一些使用上的限制。在如下狀況下,應當避免使用相對 publicPath:
當使用基於 HTML5 history.pushState 的路由時;
當使用 pages 選項構建多頁面應用時。npm
只是避免
使用,那應該就仍是能進行配置。由於本人一些靜態資源引用問題須要對路徑進行配置,望知情人士能解答一下?
寫完回家過年了,預祝你們新春大吉大利[吃雞.jpg]~