vue3 vite打包优化

2,257 阅读2分钟

在使用vue3项目做的管理后台的时候,发现首屏加载的时间特别慢,在清除缓存的情况下,每次要加载4秒左右,非常影响用户体验,所以就要考虑对项目进行优化。

一 、gzip 代码压缩

在打包的时候,控制台会显示文件的大小和压缩后文件的大小。通过gzip压缩,能够把1987kb的文件压缩到463kb,文件大小相差非常之大。

修改vite.config.ts文件

1、下载插件

npm i vite-plugin-compression -D

2、修改vite配置

// gzip压缩
import viteCompression from "vite-plugin-compression";

....

plugins: [
 vue(),
 viteCompression(),
 ...
]

....

3、修改nginx配置

server
{
  ...
  # 开启和关闭gzip模式
    # 开启和关闭gzip模式
    gzip on; 
    # 设置压缩所需要的缓冲区大小,以4k为单位,如果文件为7k则申请2*4k的缓冲区 
    gzip_buffers 4 16k;
    # 设置gzip压缩针对的HTTP协议版本
    gzip_http_version 1.0;
     # gzip 压缩级别,1-9,数字越大压缩的越好,也越占用CPU时间
    gzip_comp_level 2;
    # 进行压缩的文件类型
    gzip_types text/plain application/javascript text/css application/xml;
    # 是否在http header中添加Vary: Accept-Encoding,建议开启
    gzip_vary on;
  ...
}

二 、代码体积分析

打包出来的文件,有些体积特别大,严重影响加载的时间,需要用插件分析下,大的文件包含了什么文件,能不能拆分。

1 、下载插件

npm i rollup-plugin-visualizer -D

2、修改vite配置


import { visualizer } from 'rollup-plugin-visualizer'

....

plugins: [
 vue(),
 visualizer(),
 ...
]

....

3、查看分析结果

修改配置后打包,会在项目的根目录下生成一个 stats.html 的文件,双击打开,就可以看到每个文件的大小

三 、代码拆分

经过分析,发现index.js文件最大,里面包含了框架文件ant-design-vue,现在需要把这个框架文件拆分出来。

修改vite配置文件

...

build: {
       rollupOptions: {
          output: {
              manualChunks: {
                antDesignVue: ['ant-design-vue']
              }
          }
       }
},

...

修改后打包,发现多了antDesignVue.js的文件,index.js文件大小明显减小了