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

vue-cli3.0之配置productionGzip方式

 更新時間:2023年05月22日 14:36:31   作者:xiaofei0627  
這篇文章主要介紹了vue-cli3.0之配置productionGzip方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

vue-cli3.0配置productionGzip

最近沒事升級項(xiàng)目到vue-cli3.0, 發(fā)現(xiàn)沒有了productionGzip配置,于是查了一下資料, 解決方案如下:

提示:本文compression-webpack-plugin的版本號是2.0.0,3.0.0的話看文章內(nèi)小提示

1.安裝如下插件

npm i -D compression-webpack-plugin

2.在文件vue.config.js里導(dǎo)入compression-webpack-plugin,并添加壓縮文件類型

const CompressionWebpackPlugin = require('compression-webpack-plugin')
const productionGzipExtensions = ['js', 'css']

3.在configureWebpack 里配置如下代碼

a.簡單方式

? ?configureWebpack: {
? ? ? ? plugins: [
? ? ? ? ? ? new CompressionWebpackPlugin({
? ? ? ? ? ? ? ? asset: '[path].gz[query]', ? // 提示compression-webpack-plugin@3.0.0的話asset改為filename
? ? ? ? ? ? ? ? algorithm: 'gzip',
? ? ? ? ? ? ? ? test: new RegExp('\\.(' + productionGzipExtensions.join('|') + ')$'),
? ? ? ? ? ? ? ? threshold: 10240,
? ? ? ? ? ? ? ? minRatio: 0.8
? ? ? ? ? ? })
? ? ? ? ]
? ? },

b.高級方式

? ? configureWebpack: config => {
? ? ? ? if (process.env.NODE_ENV === 'production') {
? ? ? ? ? ? // 生產(chǎn)環(huán)境
? ? ? ? ? ? config.plugins.push(
? ? ? ? ? ? ? ? new CompressionWebpackPlugin({
? ? ? ? ? ? ? ? ? ? asset: '[path].gz[query]', // 提示示compression-webpack-plugin@3.0.0的話asset改為filename
? ? ? ? ? ? ? ? ? ? algorithm: 'gzip',
? ? ? ? ? ? ? ? ? ? test: new RegExp('\\.(' + productionGzipExtensions.join('|') + ')$'),
? ? ? ? ? ? ? ? ? ? threshold: 10240,
? ? ? ? ? ? ? ? ? ? minRatio: 0.8
? ? ? ? ? ? ? ? })
? ? ? ? ? ? );
? ? ? ? } else {
? ? ? ? ? ? // 開發(fā)環(huán)境
? ? ? ? }
? ? },

?? ?// 配置參數(shù)詳解 ??
?? ?// 提示 compression-webpack-plugin@3.0.0的話asset改為filename
?? ?asset: 目標(biāo)資源名稱。 [file] 會被替換成原始資源。[path] 會被替換成原始資源的路徑, [query] 會被替換成查詢字符串。默認(rèn)值是 "[path].gz[query]"。
?? ?algorithm: 可以是 function(buf, callback) 或者字符串。對于字符串來說依照 zlib 的算法(或者 zopfli 的算法)。默認(rèn)值是 "gzip"。
?? ?test: 所有匹配該正則的資源都會被處理。默認(rèn)值是全部資源。
?? ?threshold: 只有大小大于該值的資源會被處理。單位是 bytes。默認(rèn)值是 0。
?? ?minRatio: 只有壓縮率小于這個值的資源才會被處理。默認(rèn)值是 0.8。

4.然后運(yùn)行 npm run build 完成

5.附完整vue.config.js配置代碼

const path = require('path');
function resolve(dir) {
? ? return path.join(__dirname, dir)
}
// 導(dǎo)入compression-webpack-plugin
const CompressionWebpackPlugin = require('compression-webpack-plugin')
// 定義壓縮文件類型
const productionGzipExtensions = ['js', 'css']
module.exports = {
? ? baseUrl: "/",
? ? // 輸出目錄
? ? outputDir: 'dist', ?
? ? lintOnSave: true,
? ? // 是否為生產(chǎn)環(huán)境構(gòu)建生成 source map?
? ? productionSourceMap: false,
? ? // alias 配置
? ? chainWebpack: (config) => {
? ? ? ? config.resolve.alias
? ? ? ? ? ? .set('@', resolve('src'))
? ? },
? ? // 簡單的方式
? ? // configureWebpack: {
? ? // ? ? plugins: [
? ? // ? ? ? ? new CompressionWebpackPlugin({
? ? // ? ? ? ? ? ? asset: '[path].gz[query]', // 提示 compression-webpack-plugin@3.0.0的話asset改為filename
? ? // ? ? ? ? ? ? algorithm: 'gzip',
? ? // ? ? ? ? ? ? test: new RegExp('\\.(' + productionGzipExtensions.join('|') + ')$'),
? ? // ? ? ? ? ? ? threshold: 10240,
? ? // ? ? ? ? ? ? minRatio: 0.8
? ? // ? ? ? ? })
? ? // ? ? ]
? ? // },
? ? // 高級的方式
? ? configureWebpack: config => {
? ? ? ? if (process.env.NODE_ENV === 'production') {
? ? ? ? ? ? // 生產(chǎn)環(huán)境
? ? ? ? ? ? config.plugins.push(
? ? ? ? ? ? ? ? new CompressionWebpackPlugin({
? ? ? ? ? ? ? ? ? ? asset: '[path].gz[query]', ?// 提示 compression-webpack-plugin@3.0.0的話asset改為filename
? ? ? ? ? ? ? ? ? ? algorithm: 'gzip',
? ? ? ? ? ? ? ? ? ? test: new RegExp('\\.(' + productionGzipExtensions.join('|') + ')$'),
? ? ? ? ? ? ? ? ? ? threshold: 10240,
? ? ? ? ? ? ? ? ? ? minRatio: 0.8
? ? ? ? ? ? ? ? })
? ? ? ? ? ? );
? ? ? ? } else {
? ? ? ? ? ? // 開發(fā)環(huán)境
? ? ? ? }
? ? },
? ? // CSS 相關(guān)選項(xiàng)
? ? css: {
? ? ? ? extract: true,
? ? ? ? // 是否開啟 CSS source map?
? ? ? ? sourceMap: false,
? ? ? ? // 為預(yù)處理器的 loader 傳遞自定義選項(xiàng)。比如傳遞給
? ? ? ? // sass-loader 時,使用 `{ sass: { ... } }`。
? ? ? ? loaderOptions: {}, // 為所有的 CSS 及其預(yù)處理文件開啟 CSS Modules。
? ? ? ? modules: false
? ? },
? ? // 在多核機(jī)器下會默認(rèn)開啟。
? ? parallel: require('os').cpus().length > 1,
? ? // PWA 插件的選項(xiàng)。 ??
? ? pwa: {},
? ? // 配置 webpack-dev-server 行為。
? ? devServer: {
? ? ? ? open: process.env.NODE_ENV === "development",
? ? ? ? host: 'localhost',
? ? ? ? port: 8888,
? ? ? ? https: true,
? ? ? ? hotOnly: false,
? ? ? ? open: true,
? ? ? ? proxy: '', // string | Object
? ? ? ? before: app => {}
? ? },
? ? // 第三方插件的選項(xiàng)
? ? pluginOptions: {}
}

vue3.0配置gzip 及 資源404

第一步:vue.config.js

    plugins: [
      new CompressionPlugin({
        test:productionGzipExtensions, //匹配文件名
        threshold: 10240,//對超過10k的數(shù)據(jù)壓縮
        deleteOriginalAssets: true //不刪除源文件
      })
    ],

打包效果

第二步:這里使用 nginx 進(jìn)行配置

這里遇到了 小問題 :

deleteOriginalAssets: true //不刪除源文件 為true時,頁面加載資源呈404,需要配置nginx開啟打包靜態(tài)文件

nginx.conf
   gzip  on;
	gzip_static on; # 開啟靜態(tài)文件壓縮
    gzip_min_length  1k; # 不壓縮臨界值,大于1K的才壓縮
    gzip_buffers     4 16k;
    gzip_http_version 1.1;
    gzip_comp_level 2;
    gzip_types     text/plain application/javascript application/x-javascript text/javascript text/css application/xml application/xml+rss; # #進(jìn)行壓縮的文件類型
    gzip_vary on;
    gzip_proxied   expired no-cache no-store private auth;
    gzip_disable   "MSIE [1-6]\.";

開啟Nginx gzip壓縮非常簡單,達(dá)到的效果可以壓縮靜態(tài)文件大小、提高頁面訪問速度、節(jié)省流量和帶寬是很有幫助的,也為用戶省去了很多流量;唯一的不足就是開啟之后服務(wù)器這邊會增加運(yùn)算,進(jìn)行壓縮運(yùn)算處理,就比如壓縮級別,服務(wù)器cpu會有開銷。

請求正常:

總結(jié)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • typescript+vite項(xiàng)目配置別名的方法實(shí)現(xiàn)

    typescript+vite項(xiàng)目配置別名的方法實(shí)現(xiàn)

    我們?yōu)榱耸÷匀唛L的路徑,經(jīng)常喜歡配置路徑別名,本文主要介紹了typescript+vite項(xiàng)目配置別名的方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • Vue頁面加載完成后如何自動加載自定義函數(shù)

    Vue頁面加載完成后如何自動加載自定義函數(shù)

    這篇文章主要介紹了Vue頁面加載完成后如何自動加載自定義函數(shù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • 如何配置vue.config.js 處理static文件夾下的靜態(tài)文件

    如何配置vue.config.js 處理static文件夾下的靜態(tài)文件

    這篇文章主要介紹了如何配置vue.config.js 處理static文件夾下的靜態(tài)文件,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • vue使用國密SM4進(jìn)行加密、解密的過程

    vue使用國密SM4進(jìn)行加密、解密的過程

    國密SM4算法是一種對稱加密算法,適用于對稱密鑰加密和解密的場景,這篇文章主要介紹了vue使用國密SM4進(jìn)行加密、解密,需要的朋友可以參考下
    2023-07-07
  • vue3?關(guān)于reactive的重置問題及解決

    vue3?關(guān)于reactive的重置問題及解決

    這篇文章主要介紹了vue3?關(guān)于reactive的重置問題及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • vue2?自定義?el-radio-button?的樣式并設(shè)置默認(rèn)值的方法

    vue2?自定義?el-radio-button?的樣式并設(shè)置默認(rèn)值的方法

    這篇文章主要介紹了vue2?自定義?el-radio-button?的樣式并設(shè)置默認(rèn)值的操作方法,代碼分為html部分和css修改樣式代碼,代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-10-10
  • vue工程師必會封裝的埋點(diǎn)指令思路知識總結(jié)

    vue工程師必會封裝的埋點(diǎn)指令思路知識總結(jié)

    這篇文章主要給大家總結(jié)介紹了關(guān)于vue工程師必會封裝的埋點(diǎn)指令思路知識,文中通過實(shí)例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2021-12-12
  • Vue中的Object.defineProperty全面理解

    Vue中的Object.defineProperty全面理解

    這篇文章主要介紹了Vue中的Object.defineProperty全面理解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue.js實(shí)現(xiàn)簡單計時器功能

    vue.js實(shí)現(xiàn)簡單計時器功能

    這篇文章主要為大家詳細(xì)介紹了vue.js實(shí)現(xiàn)簡單計時器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • 詳解vue修改elementUI的分頁組件視圖沒更新問題

    詳解vue修改elementUI的分頁組件視圖沒更新問題

    這篇文章主要介紹了詳解vue修改elementUI的分頁組件視圖沒更新問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11

最新評論

渭源县| 阜平县| 南涧| 神木县| 肃南| 邓州市| 金寨县| 阿克苏市| 仪征市| 香港| 昆山市| 钟祥市| 陇西县| 页游| 福州市| 许昌市| 盐池县| 喀什市| 大城县| 鄂伦春自治旗| 峨边| 闽清县| 抚顺市| 邢台县| 无棣县| 九江市| 鄱阳县| 武邑县| 宝鸡市| 建瓯市| 青浦区| 巴楚县| 蚌埠市| 抚远县| 中卫市| 肥西县| 区。| 达州市| 沛县| 晴隆县| 柳林县|