/* * @Author: RenXiaoDong * @Date: 2025-07-02 09:17:39 */ import type { ConfigEnv, UserConfig } from 'vite'; import { defineConfig, loadEnv } from 'vite'; import vue from '@vitejs/plugin-vue'; import vueJsx from '@vitejs/plugin-vue-jsx'; import analyzer from 'rollup-plugin-visualizer'; import { pluginsConfig, resolve } from './config'; export default defineConfig(({ mode }: ConfigEnv): UserConfig => { const envDir = resolve('env'); const env = loadEnv(mode, envDir, ''); return { define: { __VUE_PROD_DEVTOOLS__: false, __VUE_PROD_HYDRATION_MISMATCH_DETAILS__: false, }, css: { preprocessorOptions: { scss: { additionalData: `@import "@/styles/lib/variable.scss"; @import "@/styles/mixins/index.scss";`, }, }, }, plugins: [vue(), vueJsx(), ...pluginsConfig, setAnalyzer(env.VITE_ENV)], resolve: { extensions: ['.jsx', '.tsx', '.js', '.ts', '.json', '.vue'], alias: { '@': resolve('src'), '@components': resolve('src/components'), }, }, envDir, envPrefix: env.ENV_PREFIX, server: { proxy: { '/api': { changeOrigin: true, rewrite: (path) => path.replace(/^\/api/, ''), target: env.VITE_API_URL, }, }, }, }; }); /** * 设置分析器,仅在development环境下生效 * @param env * @returns */ function setAnalyzer(env = 'development') { // console.log('env: ', env); if (env === 'development') { return analyzer({ filename: 'analyzer.html', open: true, }); } return null; }