代码拉取完成,页面将自动刷新
import { resolve } from 'node:path'
import { defineConfig, loadEnv } from 'vite'
import Vue from '@vitejs/plugin-vue'
import DefineOptions from 'unplugin-vue-define-options/vite'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
import viteCompression from 'vite-plugin-compression'
import { visualizer } from 'rollup-plugin-visualizer'
import { VxeTableResolve, createStyleImportPlugin } from 'vite-plugin-style-import'
export default defineConfig(({ mode }) => {
const env = loadEnv(mode, process.cwd())
return {
base: env.VITE_APP_BASE,
resolve: {
alias: {
'@': resolve(__dirname, 'src'),
},
},
build: {
minify: 'terser',
terserOptions: {
compress: {
// 生产环境时移除console
drop_console: true,
drop_debugger: true,
},
},
},
css: {
preprocessorOptions: {
scss: {
javascriptEnabled: true,
additionalData: '@import "src/styles/style.scss";',
},
},
},
plugins: [
Vue({
template: {
compilerOptions: {
isCustomElement: (tag) => tag.startsWith('iconpark-icon'),
},
},
}),
DefineOptions(),
// AutoImport({ resolvers: [ElementPlusResolver()] }),
Components({ resolvers: [ElementPlusResolver()] }),
createStyleImportPlugin({ resolves: [VxeTableResolve()] }),
viteCompression({
verbose: true, // 默认即可
disable: false, // 开启压缩(不禁用),默认即可
// deleteOriginFile: false, // 删除源文件
// threshold: 1024000, // 对大于 1mb 的文件进行压缩
algorithm: 'gzip', // 压缩算法
ext: '.gz', // 文件类型
}),
visualizer(),
],
// build: {
// rollupOptions: {
// output: {
// manualChunks: (id) => {
// // 将 node_modules 中的代码单独打包成一个 JS 文件
// if (id.includes('node_modules')) {
// return 'vendor'
// }
// },
// },
// },
// },
}
})
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。