49 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import { defineConfig } from '@vben/vite-config';
 | |
| 
 | |
| import dayjs from 'dayjs';
 | |
| import ElementPlus from 'unplugin-element-plus/vite';
 | |
| import { loadEnv } from 'vite';
 | |
| import mkcert from 'vite-plugin-mkcert';
 | |
| 
 | |
| import pkg from './package.json';
 | |
| 
 | |
| const __APP_INFO__ = {
 | |
|   lastBuildTime: dayjs().format('YYYY-MM-DD HH:mm:ss'),
 | |
|   pkg,
 | |
| };
 | |
| 
 | |
| export default defineConfig(async ({ mode }) => {
 | |
|   const env = loadEnv(mode, process.cwd());
 | |
|   const isDev = env.VITE_NODE_ENV === 'development';
 | |
|   return {
 | |
|     application: {},
 | |
|     define: {
 | |
|       // 注入环境变量到客户端
 | |
|       __APP_ENV__: JSON.stringify(env),
 | |
|       __APP_INFO__: JSON.stringify(__APP_INFO__),
 | |
|     },
 | |
|     vite: {
 | |
|       plugins: [
 | |
|         isDev && mkcert(),
 | |
|         ElementPlus({
 | |
|           format: 'esm',
 | |
|         }),
 | |
|       ],
 | |
|       server: {
 | |
|         http2: true,
 | |
|         https: true,
 | |
|         port: isDev ? Number(env.VITE_PORT) : undefined,
 | |
|         proxy: {
 | |
|           '/api': {
 | |
|             changeOrigin: true,
 | |
|             rewrite: (path) => path.replace(/^\/api/, ''),
 | |
|             // mock代理目标地址
 | |
|             target: 'http://localhost:5320/api',
 | |
|             ws: true,
 | |
|           },
 | |
|         },
 | |
|       },
 | |
|     },
 | |
|   };
 | |
| });
 | 
