82 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import vue from '@vitejs/plugin-vue';
 | 
						||
import { resolve } from 'path';
 | 
						||
import { defineConfig, loadEnv, ConfigEnv } from 'vite';
 | 
						||
import vueSetupExtend from 'vite-plugin-vue-setup-extend';
 | 
						||
import vueJsx from '@vitejs/plugin-vue-jsx'
 | 
						||
import { generateVersionFile } from "/@/utils/upgrade";
 | 
						||
 | 
						||
const pathResolve = (dir: string) => {
 | 
						||
	return resolve(__dirname, '.', dir);
 | 
						||
};
 | 
						||
 | 
						||
const alias: Record<string, string> = {
 | 
						||
	'/@': pathResolve('./src/'),
 | 
						||
	'@great-dream': pathResolve('./node_modules/@great-dream/'),
 | 
						||
	'@views': pathResolve('./src/views'),
 | 
						||
	'vue-i18n': 'vue-i18n/dist/vue-i18n.cjs.js',
 | 
						||
	'@dvaformflow':pathResolve('./src/viwes/plugins/dvaadmin_form_flow/src/')
 | 
						||
};
 | 
						||
 | 
						||
const viteConfig = defineConfig((mode: ConfigEnv) => {
 | 
						||
	const env = loadEnv(mode.mode, process.cwd());
 | 
						||
	// 当Vite构建时,生成版本文件
 | 
						||
	generateVersionFile()
 | 
						||
	return {
 | 
						||
		plugins: [vue(), vueJsx(), vueSetupExtend()],
 | 
						||
		root: process.cwd(),
 | 
						||
		resolve: { alias },
 | 
						||
		base: mode.command === 'serve' ? './' : env.VITE_PUBLIC_PATH,
 | 
						||
		optimizeDeps: {
 | 
						||
			include: [
 | 
						||
				'element-plus/es/locale/lang/zh-cn', 
 | 
						||
				'element-plus/es/locale/lang/en', 
 | 
						||
				'element-plus/es/locale/lang/zh-tw',
 | 
						||
				'@popperjs/core'
 | 
						||
			],
 | 
						||
		},
 | 
						||
		server: {
 | 
						||
			host: '0.0.0.0',
 | 
						||
			port: env.VITE_PORT as unknown as number,
 | 
						||
			open: false,
 | 
						||
			hmr: true,
 | 
						||
			proxy: {
 | 
						||
				'/gitee': {
 | 
						||
					target: 'https://gitee.com',
 | 
						||
					ws: true,
 | 
						||
					changeOrigin: true,
 | 
						||
					rewrite: (path) => path.replace(/^\/gitee/, ''),
 | 
						||
				},
 | 
						||
			},
 | 
						||
		},
 | 
						||
		build: {
 | 
						||
			lib: {
 | 
						||
				formats: ['es'],
 | 
						||
			},
 | 
						||
			outDir: env.VITE_DIST_PATH || 'dist',
 | 
						||
			chunkSizeWarningLimit: 1500,
 | 
						||
			rollupOptions: {
 | 
						||
				output: {
 | 
						||
					format: 'esm',
 | 
						||
					entryFileNames: `assets/[name].[hash].js`,
 | 
						||
					chunkFileNames: `assets/[name].[hash].js`,
 | 
						||
					assetFileNames: `assets/[name].[hash].[ext]`,
 | 
						||
					compact: true,
 | 
						||
					manualChunks: {
 | 
						||
						vue: ['vue', 'vue-router', 'pinia'],
 | 
						||
						echarts: ['echarts'],
 | 
						||
					},
 | 
						||
				},
 | 
						||
			},
 | 
						||
		},
 | 
						||
		css: { preprocessorOptions: { css: { charset: false } } },
 | 
						||
		define: {
 | 
						||
			__VUE_I18N_LEGACY_API__: JSON.stringify(false),
 | 
						||
			__VUE_I18N_FULL_INSTALL__: JSON.stringify(false),
 | 
						||
			__INTLIFY_PROD_DEVTOOLS__: JSON.stringify(false),
 | 
						||
			__VERSION__: JSON.stringify(process.env.npm_package_version),
 | 
						||
		},
 | 
						||
	};
 | 
						||
});
 | 
						||
 | 
						||
export default viteConfig;
 |