分包与treeshaking
build: {
rollupOptions:{
output: {
manualChunks: id =>{
if (id.includes('node_modules')) {
return 'vendor';
}
}
}
}
}
gzip 压缩
npm i vite-plugin-compression
cdn 加速
npm i vite-plugin-cdn-import -D
plugins: [
viteCDNPlugin({
modules: [
{
name: 'lodash',
var: '_',
path: `https://cdn.jsdelivr.net/npm/lodash@4.17.21/lodash.min.js`
}
]
})
]
图片压缩
npm i vite-plugin-imagemin -D
import { defineConfig } from 'vite'
import viteImagemin from 'vite-plugin-imagemin'
export default defineConfig({
plugins: [
viteImagemin({
gifsicle: {
optimizationLevel: 7,
interlaced: false
},
optipng: {
optimizationLevel: 7
},
mozjpeg: {
quality: 20
},
pngquant: {
quality: [0.8, 0.9],
speed: 4
},
svgo: {
plugins: [
{
name: 'removeViewBox'
},
{
name: 'removeEmptyAttrs',
active: false
}
]
}
})
]
})
构建分析
npm install rollup-plugin-visualizer -D
import { defineConfig } from 'vite'
import { visualizer } from 'rollup-plugin-visualizer';
export default defineConfig({
plugins: [
visualizer()
]
})
过滤console.log
import {defineConfig} from "vite";
export default defineConfig({
esbuild:{
drop: ['console,'debugger'], // 删除 所有的console 和 debugger
}
})
//terser:
//vite 4.X 版本已经不集成 terser,需要自行下载
npm i -D terser
// build: {
// minify: 'terser',
// terserOptions: {
// compress: {
// drop_console: true,
// drop_debugger: true
// }
// }
// },
优化配置
build:{
cssCodeSplit:true,
sourcemap:false,
minify:"esbuild",
assetsInlineLimit:4096
},