build: {
cssCodeSplit: true,
sourcemap: false,
// 消除打包大小超过500kb警告
chunkSizeWarningLimit: 1000,
reportCompressedSize: false,
rollupOptions: {
input: {
index: pathResolve("index.html")
},
// 静态资源分类打包
output: {
chunkFileNames: `static/js/[name]-[hash]${verSion}.js`,
entryFileNames: `static/js/[name]-[hash]${verSion}.js`,
assetFileNames: `static/[ext]/[name]-[hash]${verSion}.[ext]`,
manualChunks(id) {
if (id.includes("element-plus")) {
return; //不打入这俩个文件相关的东西
// 按照自己的实际需求打包
} else if (id.includes("silver/")) {
return id.toString().split("silver/")[1].split(".")[0].toString();
} else if (id.includes("node_modules")) {
const arr = id.toString().split("node_modules/")[1].split("/");
if (id.toString().includes("tinymce/"))
return id
.toString()
.split("tinymce/")[1]
.split(".")[0]
.toString();
else return arr[0].toString();
}
}
},
plugins: [terser()],
external: ["vant"]
},
terserOptions: {
compress: {
drop_console: true,
drop_debugger: true
}
}
},
plugins
zip 压缩限制
需要安装 vite-plugin-compression
import viteCompression from "vite-plugin-compression";
viteCompression({
verbose: true,
disable: false,
threshold: 1024,
algorithm: "gzip",
ext: ".gz"
})