ray-template/vite.config.ts
2022-08-17 16:38:24 +08:00

61 lines
1.5 KiB
TypeScript

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import {
useAliasOptions,
useViteBuildPlugin,
useViteServerPlugin,
useEnvBuildOutput,
useAutoImport,
useViteComponents,
useViteCompression,
useVueI18nPlugin,
useHTMLTitlePlugin,
} from './vite-plugin/index'
import vueJsx from '@vitejs/plugin-vue-jsx'
import VueI18nPlugin from '@intlify/unplugin-vue-i18n/vite'
import ViteInspect from 'vite-plugin-inspect'
import viteSvgLoader from 'vite-svg-loader'
// https://vitejs.dev/config/
export default defineConfig(async ({ mode }) => {
const { buildOptions } = useEnvBuildOutput(mode)
return {
resolve: {
alias: useAliasOptions(),
},
plugins: [
vue({ reactivityTransform: true }),
vueJsx(),
ViteInspect(), // 仅适用于开发模式(检查 Vite 插件的中间状态)
VueI18nPlugin(),
useAutoImport(),
useViteComponents(),
useViteCompression(),
useVueI18nPlugin(),
useHTMLTitlePlugin(),
viteSvgLoader(),
],
optimizeDeps: {
include: ['vue', 'vue-router', 'pinia', 'vue-i18n', '@vueuse/core'],
},
build: {
...useViteBuildPlugin(buildOptions),
rollupOptions: {
external: 'virtual:svg-icons-register',
},
},
css: {
preprocessorOptions: {
scss: {
additionalData: '@import "./src/styles/mixins.scss";', // 全局mixin
},
},
},
server: {
...useViteServerPlugin(),
},
}
})