Vue -- vue-cli webpack打包開啟Gzip 報錯

来源:https://www.cnblogs.com/donghuang/archive/2018/12/01/10045688.html
-Advertisement-
Play Games

前兩天項目上線,用vue-cli npm run build命令打包,打包完成後我擦嚇了一跳,15M。本來暫時不打算優化的,但是每次看著部署包這麼大,想想還是先優化一下,讓包好看點,免得以後出現心理陰影! 在把 map文件幹掉後,發現 webpack 這打包的速度,也忒感人了。在進行不自動生成 ma ...


  前兩天項目上線,用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 • Published 3 months ago,一下就感覺有點不對了,一般小版本的更新都是 1.xx.xx,很少這種直接全零的,全零的一般適用於大版本的升級更新,再看看上面的配置項檢驗失敗,選項屬性匹配不上。突然有種莫名被坑的感覺。接著看下麵的介紹和文檔,①先對應了下node的版本 [email protected],還在匹配的範圍內。② Requirements:This module requires a minimum of Node v6.9.0 and Webpack v4.0.0 (此模塊最低需要 Node v6.9.0和Webpack v4.0.0),我這webpack版本明顯差一大截。這下總算找到癥結所在了。

        

    

  3、找到癥結所在,那處理起來就簡單了。既然最新版本太高,在用的webpack高攀不起,那就只能給它降級了,木得法。

    ①卸載已經安裝的最新版2.0 compression-webpack-plugin 安裝包。

npm uninstall --save-dev compression-webpack-plugin

    ② 重新安裝1.1.12版本(該版本為1.1的最新版)。卸載其實可以不用,直接執行安裝命令,進行版本覆蓋也行。

npm install --save-dev [email protected]    //記得帶版本號

    ③等安裝好之後,重新執行 npm run build 進行打包,終於成功了,真他媽艱難!

 

安裝過程中,還遇到另外一個問題。網速和牆的問題:

  

  這個倒是好解決,使用 淘寶鏡像 就行。  安裝過程以及可能出現的問題和解決 可以移步  https://blog.csdn.net/u014540814/article/details/78777961  進行參考!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • [20181130]如何猜測那些值存在hash衝突.txt--//今年6月份開始kerrycode的1個帖子提到子查詢結果緩存在哈希表中情況:--//鏈接:http://www.cnblogs.com/kerrycode/p/9099507.html,摘要:通俗來將,當使用標量子查詢的時候,ORAC ...
  • [20181130]hash衝突導致查詢緩慢.txt--//昨天看了鏈接https://jonathanlewis.wordpress.com/2018/11/26/shrink-space-2/,演示了Shrink Space導致--//執行語句緩慢的情況,我自己重覆測試,實際上這樣發生的概率還是 ...
  • [20181130]control file sequential read.txt--//昨天上午探究了大量控制文件讀的情況,鏈接:http://blog.itpub.net/267265/viewspace-2222146/--//今天做一些細節探究:1.環境:SYS@xxxxx1> @ ver ...
  • 1、ipa包解壓縮:右鍵.ipa包,使用【歸檔實用工具/unarchiver】打開 2、進入解壓縮後的payload目錄,右鍵ipa包 顯示包內容 3、找到info.plist文件,直接拖拽出來 4、使用plist編輯器打開 info.plist,就可以查看CFBundleDisplayName、C ...
  • 超簡單釘釘打卡破解教程 ​ 公司前幾天要用釘釘打卡 作為拖延症的我肯定天天遲到 所以就一直找辦法可以遠程打卡 什麼teamviewer 大牛定位都不是特別好用要麼要兩台手機要麼就是收費什麼的 不過前兩天找到一個不錯的軟體我目前一直在用而且還是免費的 就是需要xposed框架支持 為了能不遲到還是折騰 ...
  • 1. NSOperation、NSOperationQueue 簡介 NSOperation、NSOperationQueue 是蘋果提供給我們的一套多線程解決方案。實際上 NSOperation、NSOperationQueue 是基於 GCD 更高一層的封裝,完全面向對象。但是比 GCD 更簡單 ...
  • 時間飛快,轉眼間8102還差一個月就over了,順了順好幾天沒理的鬍渣兒,好像已經老了不少。 不,我還很年輕!雖然年終還沒到,但好像也差不多了。 幾經輾轉,年底前終於拿到了微信的offer,可以說是今年一大幸事了。 是一個結束,結束本命年的坎坷;是一個開始,開始新的徵程。 這篇雜文就簡單記錄一下微信 ...
  • 什麼是閉包?阮一峰老師說的很清楚了,定義在一個函數內部的函數,在本質上,閉包就是將函數內部和函數外部連接起來的一座橋梁。 首先要瞭解Javascript的變數作用域:全局變數和局部變數。全局嘛,就是共用,任何一個函數內部可以直接讀取全局變數;局部嘛,就是私有,不暴露在外的。如何判斷該變數是全局還是局 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...