赞
踩
关于指标,这里简单介绍下常见的优化指标
- FCP(First Contentful Paint):白屏时间(第一个文本绘制时间)
- Speed Index:首屏时间
- TTI(Time To Interactive): 第一次可交互的时
- lighthouse score:Chrome浏览器审查工具性能评分
因为使用的是 vite,借助插件 rollup-plugin-visualizer,来进行 bundle 分析
1.安装
pnpm i rollup-plugin-visualizer -D
2.引入(在vite.config.ts文件引入)
- import { visualizer } from 'rollup-plugin-visualizer'
- const plugins = [vue(), visualizer()]
打包之后会在项目根目录生成 stats.html 文件,打开
可以分析出那块文件较大,影响了速度.
1.GZIP 配置
这里顺便介绍下 vite 的 GZIP 配置
安装 vite-plugin-compression
npm i vite-plugin-compression -D
修改 vite.config.js 配置
- import viteCompression from 'vite-plugin-compression'
-
- plugins: [vue(), viteCompression()]
打包后就会生成 gzip 文件了,但是服务端 nginx 还需要配置一下才能生效
- http {
- gzip_static on;
- gzip_proxied any;
- }
2.echarts 单独拆分
修改 vite.config.js 配置
- build: {
- rollupOptions: {
- output: {
- manualChunks: {
- echarts: ['echarts']
- }
- }
- }
- }
打包后 Index.js 体积变化(未压缩前)
Before: 4.49MB
After: 1.34MB
3.图片压缩
安装 vite-plugin-imagemin
npm i vite-plugin-imagemin -D
修改 vite.config.js 配置
- import viteImagemin from "vite-plugin-imagemin"
- plugins: [vue(), viteImagemin()]
打包后会生成压缩的图片,但是每次打包都会重新压缩一遍,比较浪费时间,如果不介意的话采用此方案也很简单.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。