您好,登錄后才能下訂單哦!
前兩天項目上線,用vue-cli npm run build
命令打包,打包完成后我擦嚇了一跳,15M。本來暫時不打算優化的,但是每次看著部署包這么大,想想還是先優化一下,讓包好看點,免得以后出現心理陰影!
在把 map文件干掉后,發現webpack這打包的速度,也忒感人了。在進行不自動生成 map文件設置時,有看到webpack自帶的productionGzip
功能,索性就一次性一起鼓搗鼓搗。
下面是瞎鼓搗歷程,差點就鼓搗不出來了。
1、在項目 根目錄config/index.js
中build內找到productionGzip: false,把false改為true。與 productionSourceMap 剛好相反。
屬性值修改后,這個時候可以執行 npm run build。但是會報錯,提示找不到 "Cannot find module 'compression-webpack-plugin'"
2、也就是說需要安裝依賴compression-webpack-plugin 官方推薦的命令是:(但是網不好的話就涼涼了)
npm install --save-dev compression-webpack-plugin //在沒有給定版本號時該命令默認安裝最新版compression-webpack-plugin,問題恰恰就出在這
安裝完成以后,重新運行 npm run build
,然后悲劇了:
從報錯顯示獲知,是配置選項驗證失敗,但是是哪一項驗證失敗,或者那些項驗證失敗就不曉得了,打開報錯日志,越看越蒙圈了,一臉茫然。從源代碼里面也沒看出個所以然。
從校驗參數來看,參數就兩個,但是第一個參數內屬性很多。
,從結果看是這行代碼里面執行的校驗失敗了。至于這行代碼執行的什么,水平不夠查不下去了。
最后沒得法了,只能去官網 https://www.npmjs.com/package/compression-webpack-plugin上看看,有么得啥突破。進去第一眼就瞄到了 2.0.0•Public•Published3 months ago,一下就感覺有點不對了,一般小版本的更新都是 1.xx.xx,很少這種直接全零的,全零的一般適用于大版本的升級更新,再看看上面的配置項檢驗失敗,選項屬性匹配不上。突然有種莫名被坑的感覺。接著看下面的介紹和文檔,①先對應了下node的版本 node@v8.11.3,還在匹配的范圍內。② Requirements:This module requires a minimum of Node v6.9.0 and Webpack v4.0.0 (此模塊最低需要 Nodev6.9.0和Webpack v4.0.0),我這webpack版本明顯差一大截。這下總算找到癥結所在了。
3、找到癥結所在,那處理起來就簡單了。既然最新版本太高,在用的webpack高攀不起,那就只能給它降級了,木得法。
①卸載已經安裝的最新版2.0compression-webpack-plugin
安裝包。
npm uninstall --save-dev compression-webpack-plugin
② 重新安裝1.1.12版本(該版本為1.1的最新版)。卸載其實可以不用,直接執行安裝命令,進行版本覆蓋也行。
npm install --save-dev compression-webpack-plugin@1.1.12 //記得帶版本號
③等安裝好之后,重新執行 npm run build
進行打包,終于成功了,真他媽艱難!
安裝過程中,還遇到另外一個問題。網速和墻的問題:
這個倒是好解決,使用淘寶鏡像 就行。 安裝過程以及可能出現的問題和解決 可以移步https://www.jb51.net/article/166090.htm進行參考!
總結
以上所述是小編給大家介紹的解決vue-cli webpack打包開啟Gzip 報錯問題,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對億速云網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。