代码拉取完成,页面将自动刷新
import { resolve } from 'path'
import { defineConfig, loadEnv } from 'vite'
import { createVuePlugin } from 'vite-plugin-vue2'
import vueJsx from '@vitejs/plugin-vue-jsx'
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'
import compressPlugin from 'vite-plugin-compression'
// compress: 'gzip' | 'brotli' | 'none'
function configCompressPlugin(isBuild, compress) {
const plugins = []
if (!isBuild) return plugins
const compressList = compress.split(',')
if (compressList.includes('gzip')) {
plugins.push(
compressPlugin({
verbose: true,
disable: false,
threshold: 10240,
algorithm: 'gzip',
ext: '.gz'
})
)
}
if (compressList.includes('brotli')) {
plugins.push(
compressPlugin({
verbose: true,
disable: false,
threshold: 10240,
algorithm: 'brotliCompress',
ext: '.br'
})
)
}
return plugins
}
export default ({ mode }) => {
const isBuild = mode === 'production' // mode == production
const port = loadEnv(mode, process.cwd()).PORT || 9528 // dev port
return defineConfig({
plugins: [
createVuePlugin(),
vueJsx(),
createSvgIconsPlugin({
iconDirs: [resolve(process.cwd(), 'src/icons/svg')],
symbolId: 'icon-[dir]-[name]'
}),
...configCompressPlugin(isBuild, 'gzip')
],
resolve: {
alias: {
'@': resolve(__dirname, './src')
}
},
base: '/',
server: {
port,
open: true,
hmr: { overlay: false }
},
build: {
outDir: 'dist',
assetsDir: 'static',
sourcemap: false,
chunkSizeWarningLimit: 1000,
rollupOptions: {
output: {
chunkFileNames: 'static/js/[name]-[hash].js',
entryFileNames: 'static/js/[name]-[hash].js',
assetFileNames: 'static/[ext]/[name]-[hash].[ext]',
manualChunks(id) { // 静态资源分拆打包
if (id.includes('node_modules')) {
return id.toString().split('node_modules/')[1].split('/')[0].toString()
}
}
}
},
minify: 'terser',
terserOptions: {
compress: {
drop_console: isBuild, // 打包时删除log
drop_debugger: isBuild, // 打包时删除debugger
pure_funcs: isBuild ? ['console.log'] : []
},
output: {
comments: isBuild // 去掉注释
}
}
}
})
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。