vue打包添加gzip配置项方式

目录
  • vue打包添加gzip配置项
    • 关于我写这篇文章的原因
  • vue3.0配置gzip 及 资源404
    • 第一步:vue.config.js
    • 第二步:这里使用 nginx 进行配置

vue打包添加gzip配置项

安装 compression-webpack-plugin

这边我选用的是6.1.1版本

npm install compression-webpack-plugin@6.1.1

或者

yarn add compression-webpack-plugin@6.1.1

之后在vue.config.js中添加配置项

    const CompressionPlugin = require('compression-webpack-plugin')
    module.exports = {
        configureWebpack: {
            plugins: [
                new CompressionPlugin({
                    algorithm: 'gzip', // 使用gzip压缩
                    test: /\.js$|\.css$|\.html$/, // 匹配文件名
                    filename: '[path][base].gz', // 压缩后的文件名(保持原文件名,后缀加.gz)
                    minRatio: 0.8, // 压缩率小于0.8才会压缩
                    threshold: 10240, // 对超过10k的数据压缩
                    deleteOriginalAssets: false // 是否删除未压缩的源文件,谨慎设置,如果希望提供非gzip的资源,可不设置或者设置为false(比如删除打包后的gz后还可以加载到原始资源文件)
                  })
            ]
        }
    }

关于我写这篇文章的原因

之前也找了很多博客,想学习一下如何添加gzip压缩,结果找到的所有配置都无法使用,无奈之下只能前往npm网站寻找文档

最后的结果:发现他们的文章,在 filename 这一项,使用的都是filename: “[path].gz[query]”;而我在npm找到的文档表明,应该使用filename:"[path][base].gz"

想说的就这么多

vue3.0配置gzip 及 资源404

第一步:vue.config.js

    plugins: [
      new CompressionPlugin({
        test:productionGzipExtensions, //匹配文件名
        threshold: 10240,//对超过10k的数据压缩
        deleteOriginalAssets: true //不删除源文件
      })
    ],

打包效果

第二步:这里使用 nginx 进行配置

这里遇到了 小问题 :

deleteOriginalAssets: true //不删除源文件 为true时,页面加载资源呈404,需要配置nginx开启打包静态文件

nginx.conf

   gzip  on;
	gzip_static on; # 开启静态文件压缩
    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; # #进行压缩的文件类型
    gzip_vary on;
    gzip_proxied   expired no-cache no-store private auth;
    gzip_disable   "MSIE [1-6]\.";

开启Nginx gzip压缩非常简单,达到的效果可以压缩静态文件大小、提高页面访问速度、节省流量和带宽是很有帮助的,也为用户省去了很多流量;唯一的不足就是开启之后服务器这边会增加运算,进行压缩运算处理,就比如压缩级别,服务器cpu会有开销。

请求正常:

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 解决vue-cli webpack打包开启Gzip 报错问题

    前两天项目上线,用vue-cli npm run build命令打包,打包完成后我擦吓了一跳,15M.本来暂时不打算优化的,但是每次看着部署包这么大,想想还是先优化一下,让包好看点,免得以后出现心理阴影! 在把 map文件干掉后,发现webpack这打包的速度,也忒感人了.在进行不自动生成 map文件设置时,有看到webpack自带的productionGzip功能,索性就一次性一起鼓捣鼓捣. 下面是瞎鼓捣历程,差点就鼓捣不出来了. 1.在项目 根目录config/index.js中build内

  • Vue CLI3 开启gzip压缩文件的方式

    gizp压缩是一种http请求优化方式,通过减少文件体积来提高加载速度.html.js.css文件甚至json数据都可以用它压缩,可以减小60%以上的体积. webpack在打包时可以借助 compression webpack plugin 实现gzip压缩,首先需要安装该插件: npm i -D compression-webpack-plugin 在vue cli3.0 生成的项目里,可在 vue.config.js 中按照如下方式进行配置: 压缩前后大小大致如下: 生成的压缩文件以.gz

  • 使用vue打包时gzip压缩的两种方案

    目录 介绍两种gzip压缩的方式 webpack打包生成gz文件 服务器在线gzip压缩 vue项目开启gzip压缩 前端配置 后端配置 开局一张图: 可以看出,在项目部署后,我们的资源文件请求都会保持原本大小,如果文件过大,并且很多的情况下,会导致网络请求耗时,严重点可能阻塞后面的进程. 介绍两种gzip压缩的方式 1.打包的时候通过webpack配置生成对应的 .gz 文件,浏览器请求xx.js/css等文件时,服务器返回对应的xxx.js.gz文件: 2.浏览器请求xx.js文件时,服务器

  • vue打包添加gzip配置项方式

    目录 vue打包添加gzip配置项 关于我写这篇文章的原因 vue3.0配置gzip 及 资源404 第一步:vue.config.js 第二步:这里使用 nginx 进行配置 vue打包添加gzip配置项 安装 compression-webpack-plugin 这边我选用的是6.1.1版本 npm install compression-webpack-plugin@6.1.1 或者 yarn add compression-webpack-plugin@6.1.1 之后在vue.conf

  • vue打包生成的文件的js文件过大的优化方式

    目录 vue打包生成的js文件过大优化 1.组件按需加载 2.去掉生成map文件 3.cdn引入 4.路由懒加载 5.代码压缩 6.最后 项目打包之后js文件太大问题 问题描述 1.使用cdn引入不怎么改变的第三方库 2.使用vue的懒加载 3.服务器和前端配置开启压缩 vue打包生成的js文件过大优化 1.组件按需加载 现在大多的ui库都是以组件的形式进行处理,所以只需导入需要模块的即可 2.去掉生成map文件 打包时会生成map文件,而map文件一般都比较大,可以取消生成map文件 (1)c

  • Vue打包部署到Nginx时,css样式不生效的解决方式

    今天在将使用Vue-cli编写的前端项目部署到Nginx的时候发生了一件很困扰的问题: Vue-cli项目在本地 使用 npm run dev的时候,页面样式是可以正常加载出来的,但是我将Vue-cli项目通过npm run build 打包生成的 dist 目录部署到Nginx之后,通过访问是无法加载出来样式的. 于是乎,在网上开始寻找资料,发现大部分前辈的解决方案都是在,config的文件夹中的index.js assetsRoot: path.resolve(__dirname, '../

  • vue 动态添加class,三个以上的条件做判断方式

    如果 status为1,样式为redRoom 如果 status为2,样式为greenRoom1 如果 status为其他,样式为greenRoom2 :class="{'redRoom': Number(items.status) === 1, 'greenRoom1': Number(items.status) === 2, greenRoom2: Number(items.status) > 2}" 补充知识:vue 根据变量值来判断显示class 我就废话不多说了,大家还

  • vue动态添加store、路由和国际化配置方式

    目录 vue动态添加store,路由和国际化 vue动态添加store vue动态添加路由 vue动态加载国际化 前端项目中用vue-i18n实现国际化 在项目中安装国际化包的依赖 配置文件 异步方式引入,一次只加载一种国际化包 非异步步方式,每次加载所有的包 使用 切语言 vue动态添加store,路由和国际化 vue动态添加store 想写组件库?用这个吧 … // store module标准格式 import demo from '@/store/modules/demo' $store

  • vue打包后出现空白页的原因及解决方式详解

    目录 路由模式 history 路由模式 hash 总结 1. 修改路径 2. 更改路由模式 路由模式拓展 路由的hash和history模式的区别 打包路由选择 路由模式 history 新建项目什么都不动,路由模式:history, 直接npm run build打包 打包之后,直接打开dist文件里面的ndex.html可以看到页面是空白的,控制台是这样的. 再看看网页源码, 对比dist文件夹结构可以看到资源路径的引入是错误的,应该用'./'而不是'/' 那怎么修改打包之后的路径呢?查看

  • vue 数组添加数据方式

    目录 vue 数组添加数据 数据添加分为三种方法 动态向数组中添加对象(关于v-for,input和push) 核心:深拷贝 vue 数组添加数据 数据添加分为三种方法 1.unshift() 2.push() 3.splice() <template>       <div>         <ul>           <li v-for="(time,index) of listTable" :key="index"

  • vue项目打包:修改dist文件名方式

    目录 vue项目打包:修改dist文件名 修改vue打包后的默认文件名 解决方案 vue项目打包:修改dist文件名 vue.config.js  // 输出文件目录(默认dist)    outputDir: 'smf', 'use strict' const path = require('path') const defaultSettings = require('./src/settings.js') function resolve(dir) { return path.join(_

随机推荐