Vue使用CDN与GZIP打包部署优化

news/2024/7/10 2:54:17 标签: vue, js, javascript

Vue使用cdn加速与gzipu压缩实现打包优化

  • 前言
  • 一、CDN
    • 1.cdn方式引入
    • 2.修改config
    • 3.修改引入方式
  • 二、GZIP
    • 1.配置
    • 2.Nginx配置
    • 3.压缩效果
  • 总结


前言

当我们前端使用了大量组件和页面之后,打包会导致项目体积过大,这时候部署后访问有时候就会出现首页喧染慢等一些尴尬而又急人的情况。这个时候我们就需要对项目进行优化,例如uniapp可以分包加载,vue则可以cdn加载三方插件与gzip压缩js文件


一、CDN

CDN应用广泛,支持多种行业、多种场景内容加速,例如:图片小文件、大文件下载、视音频点播、直播流媒体、全站加速、安全加速

1.cdn方式引入

首先要进入我们的public/index.html,网上有很多cdn加速节点可以选择

<!-- vue三剑客 -->
<script src="https://cdn.bootcss.com/vue/2.6.11/vue.min.js">javascript"></script>
<script src="https://cdn.bootcss.com/vue-router/3.2.0/vue-router.min.js">javascript"></script>
<script src="https://cdn.bootcss.com/vuex/3.2.0/vuex.min.js">javascript"></script>
<!-- 三方组件 -->
<script src="https://lib.baomitu.com/echarts/5.0.2/echarts.common.js">javascript"></script>
<script src="https://lib.baomitu.com/echarts-gl/2.0.2/echarts-gl.js">javascript"></script>
<script src="https://lib.baomitu.com/v-charts/1.19.0/amap.js">javascript"></script>
<script src="https://lib.baomitu.com/xlsx/0.16.9/xlsx.js">javascript"></script>
<script src="https://lib.baomitu.com/jspdf/2.1.1/jspdf.es.js">javascript"></script>
<link href="//netdna.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">

2.修改config

本项目是Vue3,所以配置都在vue.config.js中,这里就是引入,然后一定要记得删除package.json中的依赖

javascript">module.exports = {
  ...
  configureWebpack:{
    externals:{
	  'vue': 'Vue',
	  'vue-router': 'VueRouter',
	  'vuex':'Vuex',
	  'xlsx': 'XLSX',
	  'jspdf': 'jspdf',
	  'echarts': 'echarts',
	  'v-charts': 'v-charts',
	  'echarts-gl': 'echarts-gl',
	  'font-awesome': 'font-awesome'
    },
  }
}

3.修改引入方式

首先Vue你在main.js中该引入还是得引入的
在这里插入图片描述

其次在用到三方组件的时候,我们就可以局部引入了,举个echarts例子,可以改为一下方式引入

javascript">import * as echarts from 'echarts'

在这里插入图片描述
然后部署后访问时可以查看Network中的请求url是否为cdn加速

在这里插入图片描述

二、GZIP

1.配置

使用(compression-webpack-plugin)插件

npm install compression-webpack-plugin --save-dev

然后配置一下压缩包设置

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

module.exports = {
  ...
  // 压缩包配置
  configureWebpack:{
    plugins: [
      new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/),
      // 下面是下载的插件的配置
      new CompressionWebpackPlugin({
        algorithm: 'gzip',
        test: new RegExp('\\.(' + productionGzipExtensions.join('|') + ')$'),
        threshold: 10240,
        minRatio: 0.8
      }),
      new webpack.optimize.LimitChunkCountPlugin({
        maxChunks: 5,
        minChunkSize: 100
      })
    ]
  },
  chainWebpack(config) {
    // 移除打包后所有打包好的文件预加载行为
    config.plugins.delete('preload');
    config.plugins.delete('prefetch');
  }
}

2.Nginx配置

javascript">http {
  ...
  # 开启
  gzip on;
  gzip_min_length  1k;
  gzip_buffers     4 16k;
  gzip_http_version 1.1;
  # 压缩级别
  gzip_comp_level 9;
  # 压缩类型
  gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
  gzip_vary on;
  gzip_proxied   expired no-cache no-store private auth;
  gzip_disable   "MSIE [1-6]\.";

}

3.压缩效果

来看一下压缩的js文件,这些都生成了一个gz文件

在这里插入图片描述
然后再来看一下网络传输,传输的确实是gz文件的大小

在这里插入图片描述


总结

这样最起码网站渲染速度提升一倍,也可以把静态图片资源换成网络图床图片或者是懒加载一些路由都是可以的,希望大家的个人网站越来越完美吧


http://www.niftyadmin.cn/n/856879.html

相关文章

Vue封装Excel导入组件并使用ElementUI显示内容,将json结果集传递给后端

Vue封装Excel公用导入组件&#xff0c;将内容显示在ElementUI表格中&#xff0c;将结果传递给后端进行数据库 操作前言一、演示1.选择文件2.查看内容二、界面1.主页面2.组件注册3.组件内容4.Excel读取总结前言 使用Vue读取Excel内的数据需要使用npm安装xlsx&#xff0c;将结果…

uni-app分包优化、页面预加载、页面跳转等封装

uni-app分包优化、页面预加载、页面跳转封装等优化方式优化一、分包优化1.目录2.分包配置3.页面预加载二、页面跳转1.UNI跳转方法2.封装为vue全局方法优化 因小程序有体积和资源加载限制&#xff0c;各家小程序平台提供了分包方式&#xff0c;优化小程序的下载和启动速度。在小…

SpringBoot自定义注解实现操作日志记录

SpringBoot自定义日志注解实现方法日志记录和参数获取前言一、定义注解1.注解2.枚举类二、AOP处理1.配置织入点2.处理注解方法3.获取参数4.完整切面处理代码三、工具类总结前言 我们在日常业务操作中需要记录很多日志&#xff0c;可以在我们需要的方法中对日志进行保存操作&am…

uni-app微信授权登录,校验临时凭证获取唯一标识

uni-app微信授权&#xff0c;新版4.28&#xff0c;多种方式校验临时凭证code来获取openid前言一、授权流程1.流程图2.授权操作1.加载登录页判断缓存&#xff0c;自动登录2.授权同意与拒绝3.获取服务供应商4.微信登录5.换取openid标识3.完整代码二、授权手机号1.Button2.解密数据…

Vue常用代码与常见问题汇总,不断更新中

Vue常用代码与常见问题汇总&#xff0c;不断更新中...前言一、对象操作重置属性事件二、工具类路由类全局地图坐标三、组件部分父子通信兄弟通信SLOT插槽四、请求操作五&#xff0c;性能优化六&#xff0c;样式修改前言 总结一些工作中常用的通用的代码&#xff0c;希望可以帮…

库存系统 代码 java_商品库存管理系统java源代码

【实例简介】商品库存管理系统JAVA程序,不需要数据库.很小源程序可使用Jdk1.3以上的任何版本编译和运行&#xff0c;命令运行商品库存管理系统 的命令格式为&#xff1a;java chapter1. MainFrame。 -merchandise inventory management system JAVA procedures, not the databa…

java calendar时间计算_Java Calendar计算所在时区的时间偏移量

1、通过Calendar对象&#xff0c;根据系统时间计算时区偏移量、夏令时时间System.out.println("当前时间&#xff1a;"new Date());// Calendar.getInstance() 获取Calendar实例&#xff0c;并获取系统默认的TimeZoneCalendar calendar Calendar.getInstance();Syst…

JVM与类加载器记录

JVM内存&#xff0c;类加载过程与反编译CLASS文件一、JVM执行1.jvm概念2.类加载2.1 加载体系2.2 加载过程3.内存区域3.1 程序计数器(线程私有)3.2 栈(线程私有)3.3 本地方法区(线程私有)3.4 堆&#xff08;线程共享&#xff09;3.5 方法区/元空间&#xff08;线程共享&#xff…