vue項(xiàng)目開啟gzip壓縮功能簡(jiǎn)單實(shí)例
前言:為了優(yōu)化首屏加載速度,啟用gzip壓縮。
一、安裝compression-webpack-plugin
//新版本不太兼容,推薦這個(gè)版本 npm install compression-webpack-plugin@6.1.1 --save-dev
二、修改vue.config.js文件
// 1.先引入 const CompressionWebpackPlugin = require('compression-webpack-plugin'); // 2.在configureWebpack下面進(jìn)行配置(基本配置) plugins: [ new CompressionWebpackPlugin({ // [file] 會(huì)被替換成原始資源。[path] 會(huì)被替換成原始資源的路徑,[query] 會(huì)被替換成查詢字符串 filename: '[path][base].gz', // 壓縮成gzip algorithm: 'gzip', // 使用正則給匹配到的文件做壓縮,這里是給html、css、js以及字體做壓縮 test: /\.js$|\.css$|\.html$|\.ttf$|\.eot$|\.woff$/, // 只有大小大于該值的資源會(huì)被處理。單位是 bytes。默認(rèn)值是 0。 threshold: 10240, // 只有壓縮率小于這個(gè)值的資源才會(huì)被處理。默認(rèn)值是 0.8。 minRatio: 0.8 }) ] // 3.然后 yarn build 進(jìn)行打包得到dist文件夾,就可以看到生成了很多gzip后綴的文件
三、在nodejs中使用
由于我是用nodejs搭建的服務(wù)器,因此只記錄用node使用的情況。
1.將dist文件放放在含有nodejs后臺(tái)的文件夾下
2.修改server.js文件
const path = require('path'); const fs = require('fs'); //導(dǎo)入express模塊 const express = require('express') //創(chuàng)建express的服務(wù)器實(shí)例 const app = express() app.use((request, response, next) => { //由于我是把server.js和dist文件夾放在同一路徑下,因此需要拼接 const fullPath = path.join(__dirname,'dist',`${request.originalUrl}.gz`); // 檢測(cè)是否存在同名.gz壓縮文件 if (fs.existsSync(fullPath)) { // 存在就告訴瀏覽器用gzip編碼格式來(lái)解析,并把對(duì)應(yīng)的“.gz”格式文件發(fā)送給瀏覽器。 response.setHeader('Content-Encoding', 'gzip') response.sendFile(fullPath); } else { next() } }) //將dist目錄托管為靜態(tài)資源服務(wù)器 app.use(express.static('./dist')) //調(diào)用app.listen方法,指定端口號(hào)并啟動(dòng)web服務(wù)器 app.listen(3140,function(){ console.log('Express server running at http://127.0.0.1:3140'); })
3.over
可以看到,導(dǎo)致首屏加載過(guò)慢的罪魁禍?zhǔn)滓呀?jīng)壓縮成功啦
總結(jié)
到此這篇關(guān)于vue項(xiàng)目開啟gzip壓縮功能的文章就介紹到這了,更多相關(guān)vue開啟gzip壓縮內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue實(shí)現(xiàn)移動(dòng)端圖片上傳功能
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)移動(dòng)端圖片上傳功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-12-12vue中利用iscroll.js解決pc端滾動(dòng)問(wèn)題
這篇文章主要介紹了vue中利用iscroll.js解決pc端滾動(dòng)問(wèn)題,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-02-02vue3中使用keepAlive緩存路由組件不生效的問(wèn)題解決
這篇文章主要介紹了vue3中使用keepAlive緩存路由組件不生效的問(wèn)題解決,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-06-06vue使用echarts實(shí)現(xiàn)中國(guó)地圖和點(diǎn)擊省份進(jìn)行查看功能
這篇文章主要介紹了vue使用echarts實(shí)現(xiàn)中國(guó)地圖和點(diǎn)擊省份進(jìn)行查看功能,本文通過(guò)實(shí)例代碼給大家詳細(xì)講解,對(duì)vue echarts 中國(guó)地圖相關(guān)知識(shí)感興趣的朋友一起看看吧2022-12-12在vue中使用inheritAttrs實(shí)現(xiàn)組件的擴(kuò)展性介紹
這篇文章主要介紹了在vue中使用inheritAttrs實(shí)現(xiàn)組件的擴(kuò)展性介紹,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12用Vue.js開發(fā)網(wǎng)頁(yè)時(shí)鐘
這篇文章主要為大家詳細(xì)介紹了用Vue.js開發(fā)一個(gè)網(wǎng)頁(yè)時(shí)鐘,分為白天模式和夜晚模式,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08vue+element實(shí)現(xiàn)頁(yè)面頂部tag思路詳解
這篇文章主要介紹了vue+element實(shí)現(xiàn)頁(yè)面頂部tag效果,頁(yè)面顯示由數(shù)組循環(huán)得出,數(shù)組可存儲(chǔ)在store里,tags數(shù)組里面已經(jīng)有值,由于默認(rèn)是白色,所以頁(yè)面上看不出,接下來(lái)就是給選中的標(biāo)簽高亮,需要的朋友可以參考下2021-12-12vant steps流程圖的圖標(biāo)使用slot自定義方式
這篇文章主要介紹了vant steps流程圖的圖標(biāo)使用slot自定義方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06iview-table組件嵌套input?select數(shù)據(jù)無(wú)法雙向綁定解決
這篇文章主要為大家介紹了iview-table組件嵌套input?select數(shù)據(jù)無(wú)法雙向綁定解決示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09