最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue項(xiàng)目打包后js文件過(guò)大的問(wèn)題解決辦法

 更新時(shí)間:2025年05月20日 09:03:37   作者:byg_qlh  
在Vue項(xiàng)目中打包體積過(guò)大是一個(gè)常見(jiàn)的問(wèn)題,這篇文章主要給大家介紹了關(guān)于Vue項(xiàng)目打包后js文件過(guò)大的問(wèn)題解決辦法,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下

前言

頁(yè)面加載的時(shí)候,時(shí)間過(guò)于緩慢,通過(guò)Chrome的F12性能調(diào)試,發(fā)現(xiàn)主要原因是因?yàn)榧虞d的 js 過(guò)大而引起的。因?yàn)橹耙呀?jīng)提到了將我們一些組件改成CDN方式引入,例如 Vue、ElementUi、ECharts等。但是還是存在一些打包后的內(nèi)部 js 文件,他們的大小也過(guò)于龐大,因此本文將主要講解如何解決Vue項(xiàng)目打包后js文件過(guò)大的問(wèn)題。

引入插件

我們可以通過(guò)引入 compression-webpack-plugin 插件,然后開(kāi)啟 gzip 來(lái)解決本問(wèn)題

首先安裝插件依賴

npm i compression-webpack-plugin@5.0.1

然后修改 config/index.js 文件,把 productionGzip 改為:true

productionGzip: true,
productionGzipExtensions: ['js', 'css'],

然后在修改 build/webpack.prod.conf.js 文件,修改如下內(nèi)容

// 判斷配置文件是否開(kāi)啟了gzip加速
if (config.build.productionGzip) {
  // 引入壓縮文件的組件,該插件會(huì)對(duì)生成的文件進(jìn)行壓縮,生成一個(gè).gz文件
  const CompressionWebpackPlugin = require('compression-webpack-plugin')
  webpackConfig.plugins.push(
    new CompressionWebpackPlugin({
      filename: '[path].gz[query]', // 目標(biāo)文件名
      algorithm: 'gzip',  // 使用gzip壓縮
      test: new RegExp( // 滿足正則表達(dá)式的文件會(huì)被壓縮
        '\\.(' + config.build.productionGzipExtensions.join('|') + ')$'
      ),
      threshold: 10240, // 資源大于10240=10KB時(shí)會(huì)被壓縮
      minRatio: 0.8,
      deleteOriginalAssets: false, // 是否刪除原資源
    })
  )
}

打包

修改完成后,我們打包項(xiàng)目

npm run build

打包完成后,我們查看 dist目錄,能夠發(fā)現(xiàn)很多 js 文件已經(jīng)被壓縮了

修改Nginx配置

因?yàn)槲覀?nbsp;Vue 項(xiàng)目打包后,部署的是靜態(tài)文件,因此我們還需要在 nginx 處開(kāi)啟 gzip, 找到 nginx.conf

# on為啟用,off為關(guān)閉
gzip on;
# Nginx的動(dòng)態(tài)壓縮是對(duì)每個(gè)請(qǐng)求先壓縮再輸出,這樣造成虛擬機(jī)浪費(fèi)了很多cpu,解決這個(gè)問(wèn)題可以利用nginx模塊Gzip Precompression,這個(gè)模塊的作用是對(duì)于需要壓縮的文件,直接讀取已經(jīng)壓縮好的文件(文件名為加.gz),而不是動(dòng)態(tài)壓縮,對(duì)于不支持gzip的請(qǐng)求則讀取原文件
gzip_static on;
# 設(shè)置允許壓縮的頁(yè)面最小字節(jié)數(shù),頁(yè)面字節(jié)數(shù)從header頭中的Content-Length中進(jìn)行獲取。默認(rèn)值是0,不管頁(yè)面多大都?jí)嚎s。建議設(shè)置成大于1k的字節(jié)數(shù),小于1k可能會(huì)越壓越大。
gzip_min_length 1k;
# 獲取多少內(nèi)存用于緩存壓縮結(jié)果,‘4 16k'表示以16k*4為單位獲得
gzip_buffers 4 32k;
# 識(shí)別http協(xié)議的版本,早起瀏覽器可能不支持gzip自解壓,用戶會(huì)看到亂碼
gzip_http_version 1.1;
# gzip壓縮比(1~9),越小壓縮效果越差,但是越大處理越慢,所以一般取中間值;
gzip_comp_level 2;
# 對(duì)特定的MIME類型生效,其中'text/html'被系統(tǒng)強(qiáng)制啟用
gzip_types text/plain application/x-javascript text/css application/xml;
# 啟用應(yīng)答頭"Vary: Accept-Encoding"
gzip_vary on;
# IE5.5和IE6 SP1使用msie6參數(shù)來(lái)禁止gzip壓縮 )指定哪些不需要gzip壓縮的瀏覽器(將和User-Agents進(jìn)行匹配),依賴于PCRE庫(kù)
gzip_disable "MSIE [1-6].";

設(shè)置完成后,我們重啟 nginx

到這里為止,我們的響應(yīng)時(shí)間過(guò)于緩慢的問(wèn)題也得到了解決

總結(jié)

到此這篇關(guān)于Vue項(xiàng)目打包后js文件過(guò)大的問(wèn)題解決辦法的文章就介紹到這了,更多相關(guān)Vue項(xiàng)目打包后js文件過(guò)大內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解Vue項(xiàng)目部署遇到的問(wèn)題及解決方案

    詳解Vue項(xiàng)目部署遇到的問(wèn)題及解決方案

    這篇文章主要介紹了詳解Vue項(xiàng)目部署遇到的問(wèn)題及解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01
  • Vue?ELement?Table技巧表格業(yè)務(wù)需求實(shí)戰(zhàn)示例

    Vue?ELement?Table技巧表格業(yè)務(wù)需求實(shí)戰(zhàn)示例

    這篇文章主要介紹了Vue?ELement?Table技巧表格業(yè)務(wù)需求實(shí)戰(zhàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • vue2 webpack proxy與nginx配置方式

    vue2 webpack proxy與nginx配置方式

    這篇文章主要介紹了vue2 webpack proxy與nginx配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • Vue3?setup添加name的方法步驟

    Vue3?setup添加name的方法步驟

    如果你在 vue3 開(kāi)發(fā)中使用了語(yǔ)法的話,對(duì)于組件的name屬性,需要做一番額外的處理,下面這篇文章主要給大家介紹了關(guān)于Vue3?setup添加name的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • el-select選擇器組件下拉框增加自定義按鈕的實(shí)現(xiàn)

    el-select選擇器組件下拉框增加自定義按鈕的實(shí)現(xiàn)

    本文主要介紹了el-select選擇器組件下拉框增加自定義按鈕的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-07-07
  • Vue.use的原理和設(shè)計(jì)源碼探究

    Vue.use的原理和設(shè)計(jì)源碼探究

    這篇文章主要為大家介紹了Vue.use的原理和設(shè)計(jì)源碼探究詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • vue2.0移除或更改的一些東西(移除index key)

    vue2.0移除或更改的一些東西(移除index key)

    這篇文章主要介紹了vue2.0移除或更改的一些東西,vue2.0 移除了index和key,具體內(nèi)容詳情大家參考下本文
    2017-08-08
  • 利用Vue3實(shí)現(xiàn)鼠標(biāo)跟隨效果

    利用Vue3實(shí)現(xiàn)鼠標(biāo)跟隨效果

    在Web開(kāi)發(fā)領(lǐng)域,鼠標(biāo)跟隨效果是一種能顯著提升頁(yè)面交互性、增加動(dòng)態(tài)感與趣味性的常見(jiàn)方式,下面我們看看如何使用Vue3實(shí)現(xiàn)鼠標(biāo)跟隨效果吧
    2024-11-11
  • Vue3 openlayers加載瓦片地圖并手動(dòng)標(biāo)記坐標(biāo)點(diǎn)功能

    Vue3 openlayers加載瓦片地圖并手動(dòng)標(biāo)記坐標(biāo)點(diǎn)功能

    這篇文章主要介紹了 Vue3 openlayers加載瓦片地圖并手動(dòng)標(biāo)記坐標(biāo)點(diǎn)功能,我們這里用vue/cli創(chuàng)建,我用的node版本是18.12.1,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2024-04-04
  • vue學(xué)習(xí)筆記之Vue中css動(dòng)畫原理簡(jiǎn)單示例

    vue學(xué)習(xí)筆記之Vue中css動(dòng)畫原理簡(jiǎn)單示例

    這篇文章主要介紹了vue學(xué)習(xí)筆記之Vue中css動(dòng)畫原理,結(jié)合簡(jiǎn)單實(shí)例形式分析了Vue中css樣式變換動(dòng)畫效果實(shí)現(xiàn)原理與相關(guān)操作技巧,需要的朋友可以參考下
    2020-02-02

最新評(píng)論

惠安县| 德州市| 乌什县| 庄河市| 淳化县| 邢台市| 恭城| 珲春市| 清水县| 馆陶县| 南投县| 娱乐| 历史| 根河市| 武威市| 大竹县| 宁海县| 秦皇岛市| 桐城市| 唐山市| 石屏县| 东莞市| 龙游县| 灌南县| 贡嘎县| 绥宁县| 磐石市| 紫阳县| 彭山县| 肥东县| 礼泉县| 青浦区| 蓬安县| 屏东县| 彭泽县| 恭城| 常山县| 文山县| 嘉兴市| 郴州市| 明星|