当前位置: 首页 > news >正文

Vite打包优化插件


一、可视化和分析Rollup包

  • rollup-plugin-visualizer
  • 一款可视化和分析Rollup包,查看哪些模块占用了空间。
  • npm install --save-dev rollup-plugin-visualizer
import { defineConfig } from "vite"
import { visualizer } from "rollup-plugin-visualizer"

export default defineConfig({
  plugins: [
    visualizer({
      open: true, //注意这里要设置为true,否则无效
      gzipSize: true,
    })
  ],
})

在这里插入图片描述


二、使用gzip或brotli压缩资源

  • vite-plugin-compression
  • 一个开启gzip或者brotli压缩资源插件
  • npm i vite-plugin-compression -D
  • algorithm:压缩算法,可选 [ ‘gzip’ , ‘brotliCompress’ ,‘deflate’ , ‘deflateRaw’]
import viteCompression from 'vite-plugin-compression';

export default () => {
  return {
    plugins: [
		 viteCompression({
	      deleteOriginFile: false,
	      algorithm: "gzip",
	    }),
	],
  };
};

三、打包构建优化配置

import { defineConfig } from "vite"

export default defineConfig({
  build: {
    rollupOptions: {
      output: {
        manualChunks: {
          react: ["react", "react-router-dom"],
          echarts: ["echarts"],
          lodash: ["lodash"],
          antd: ["antd"],
          moment: ["moment"],
          ahooks: ["ahooks"],
          reactJss: ["react-jss"],
          exceljs: ["exceljs"],
          html2canvas: ["html2canvas"],
        },
      },
    },
  },
})

  • 构建后目录
    在这里插入图片描述

四、为生产版本提供遗留浏览器支持

  • @vitejs/plugin-legacy
  • 一款为生产版本提供遗留浏览器支持插件
  • 必须安装Terser,因为遗留插件使用Terser来缩小。
  • npm add -D terser @vitejs/plugin-legacy
// vite.config.js
import legacy from '@vitejs/plugin-legacy'

export default {
  plugins: [
    legacy({
      targets: ['defaults', 'not IE 11']
    })
  ]
}

相关文章:

  • 一文搞懂nginx的反向代理 负载均衡
  • Redis的哨兵模式搭建
  • 闭包、闭包应用场景
  • 瑞吉外卖 —— 2、后台登录和登出
  • 阿里云配置hadoop远程连接Web页面(如50070端口)
  • Linux 任务调度
  • Github每日精选(第32期):HTML智能仪表盘tabler
  • 对多个 CSV 文件做关联
  • 记录一次数据库CPU被打满的排查过程
  • 金九银十准备季:Java IO流面试题(含答案)
  • Kubeadm方式快速搭建K8S集群1.20版本
  • 手把手开发Admin 系列一(设计篇)
  • java计算机毕业设计西安财经大学校园一卡通管理系统源码+系统+数据库+lw文档+mybatis+运行部署
  • 丁鹿学堂前端培训:前端性能优化css篇(一)
  • MASA Stack 第四期社区例会
  • @jsonView过滤属性
  • CEF与代理
  • Electron入门介绍
  • happypack两次报错的问题
  • JAVA SE 6 GC调优笔记
  • MaxCompute访问TableStore(OTS) 数据
  • miaov-React 最佳入门
  • opencv python Meanshift 和 Camshift
  • PHP 的 SAPI 是个什么东西
  • tensorflow学习笔记3——MNIST应用篇
  • 初识 beanstalkd
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 第13期 DApp 榜单 :来,吃我这波安利
  • 分类模型——Logistics Regression
  • 数据科学 第 3 章 11 字符串处理
  • 一、python与pycharm的安装
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • 2017年360最后一道编程题
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • (Bean工厂的后处理器入门)学习Spring的第七天
  • (bean配置类的注解开发)学习Spring的第十三天
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (二)JAVA使用POI操作excel
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • (力扣)1314.矩阵区域和
  • (论文阅读30/100)Convolutional Pose Machines
  • (十六)串口UART
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (转)IOS中获取各种文件的目录路径的方法
  • .NET 读取 JSON格式的数据
  • .Net 转战 Android 4.4 日常笔记(4)--按钮事件和国际化
  • .NET/C# 使窗口永不激活(No Activate 永不获得焦点)
  • .net与java建立WebService再互相调用
  • .NET中的十进制浮点类型,徐汇区网站设计
  • @DateTimeFormat 和 @JsonFormat 注解详解
  • [ element-ui:table ] 设置table中某些行数据禁止被选中,通过selectable 定义方法解决
  • [ vulhub漏洞复现篇 ] struts2远程代码执行漏洞 S2-005 (CVE-2010-1870)
  • []利用定点式具实现:文件读取,完成不同进制之间的
  • [20171113]修改表结构删除列相关问题4.txt