vue3+ts+vite antd自定义主题和vite打包配置资源压缩和分类打包, 第十一回
直接贴出vite.config.ts 的配置
plugins:[
vue(),
AutoImport({
imports: ['vue', 'vue-router'], // 自动导入vue和vue-router
resolvers:[
AntDesignVueResolver(), // 自动导入ant-design-vue
]
}),
Components({
resolvers:[AntDesignVueResolver({importStyle:"less", resolveIcons: true})] // 自动导入和注册 antd 组件库
}),
viteCompression({
verbose: true,
disable: false,
threshold: 10240,
algorithm: 'gzip', // 使用gzip 压缩资源
ext: '.gz',
deleteOriginFile: true, // 压缩后是否删除压缩源文件
})
],
css: {
preprocessorOptions: { // antd自定义主题
less: {
modifyVars: {
'primary-color': '#5865F2',
'link-color': '#5865F2',
},
javascriptEnabled: true,
},
},
},
envDir:'./env', // 配置env文件目录
envPrefix:['VITE_','APP_'], // 配置env文件前缀
build:{
minify: 'esbuild',
chunkSizeWarningLimit: 1000, // 提高超大静态资源警告大小
cssCodeSplit: true,
emptyOutDir: true,
sourcemap: false,
assetsDir: 'assets', // 默认 assets
outDir: 'dist', // 默认 dist
rollupOptions: {
output: {
compact: true,
entryFileNames: "static/js/[name]-[hash].js",
chunkFileNames: "static/js/[name]-[hash].js",
assetFileNames: "static/[ext]/[name].[ext]",
manualChunks(id) {
if (id.includes('node_modules')) {
return id.toString().split('node_modules/')[1].split('/')[0].toString();
}
}
}
},
},
esbuild: { // 打包的过程里删掉开发的时候各种console和debugger
drop: mode === 'production' ? ['console', 'debugger'] : []
},
开启gizp资源压缩之后,需要更改nginx的配置,找到nginx使用的配置文件,加入以下配置
# 开 启 gzip功 能 gzip on; # 开 启 gzip静 态 压 缩 功 能 gzip_static on; # gzip缓 存 大 小 gzip_buffers 4 16k; # gzip http版 本 gzip_http_version 1.1; # gzip 压 缩 级 别 1-10 gzip_comp_level 5; # gzip 压 缩 类 型 gzip_types text/plain application/javascript text/css application/xml text/javascript image/jpeg image/gif image/png; # 是 否 在 http header中 添 加 Vary: Accept-Encoding, 建 议 开 启 gzip_vary on;
配置完之后,需要重新reload一下,使新的配置生效
nginx -s reload
本文来自博客园,作者:大楚打码人,转载请注明原文链接:https://www.cnblogs.com/qh1688/p/17509321.html
浙公网安备 33010602011771号