44 lines
1.2 KiB
TypeScript
44 lines
1.2 KiB
TypeScript
import { defineConfig } from 'vite'
|
|
import vue from '@vitejs/plugin-vue'
|
|
import path from 'path' // 引入 path 模块
|
|
|
|
import viteImagemin from 'vite-plugin-imagemin' // 新插件
|
|
import AutoImport from 'unplugin-auto-import/vite'
|
|
import Components from 'unplugin-vue-components/vite'
|
|
export default defineConfig({
|
|
plugins: [
|
|
vue(),
|
|
AutoImport({
|
|
imports: ['vue', 'vue-router'] // 自动导入 Vue、Vue Router API
|
|
}),
|
|
Components({
|
|
dirs: ['src/components'] // 自动扫描组件目录
|
|
}),
|
|
viteImagemin({
|
|
// 基础压缩配置(可根据需求扩展)
|
|
gifsicle: { optimizationLevel: 7 },
|
|
optipng: { optimizationLevel: 7 },
|
|
mozjpeg: { quality: 80 },
|
|
pngquant: { quality: [0.8, 0.9] },
|
|
svgo: { plugins: [{ name: 'removeViewBox' }] }
|
|
})
|
|
],
|
|
build: {
|
|
rollupOptions: {
|
|
output: {
|
|
manualChunks(id) {
|
|
if (id.includes('node_modules')) {
|
|
// 将第三方库单独分包(如 axios、vue 等)
|
|
return id.split('node_modules/')[1].split('/')[0]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
resolve: {
|
|
alias: {
|
|
'@': path.resolve(__dirname, 'src') // 添加路径别名
|
|
}
|
|
}
|
|
})
|