electricity_bill_calc_userR.../vite.config.ts

65 lines
1.9 KiB
TypeScript

import { defineConfig, loadEnv } from 'vite'
import react from '@vitejs/plugin-react-swc'
import { defaultTo, toUpper } from 'ramda';
import path from 'path';
// https://vitejs.dev/config/
type HostMapping = {
Host: string;
Path: string;
};
const EnvHostMapping: { [key: string]: HostMapping } = {
LOCAL: {
Host: 'http://localhost:8000',
// Host: 'http://1.92.72.5/api',
Path: ''
},
REMOTE: {
Host: 'https://elec.archgrid.xyz',
Path: 'api'
},
LOCAL_MOCK: {
Host: 'http://127.0.0.1:4523',
Path: '/m1/1411767-0-default'
}
};
export default (mode: string) => {
process.env = { ...process.env, ...loadEnv(mode, process.cwd()) };
const proxyHost: HostMapping = EnvHostMapping[toUpper(defaultTo('LOCAL')(process.env.PROXY_TARGET)).trim()];
return defineConfig({
plugins: [react()],
resolve: {
alias: {
'@c': path.resolve(__dirname, 'src', 'components'),
'@h': path.resolve(__dirname, 'src', 'hooks'),
'@p': path.resolve(__dirname, 'src', 'pages'),
'@q': path.resolve(__dirname, 'src', 'queries'),
'@st': path.resolve(__dirname, 'src', 'states'),
'@sh': path.resolve(__dirname, 'src', 'shared'),
'@u': path.resolve(__dirname, 'src', 'utils'),
'@': path.resolve(__dirname, 'src'),
'config': path.resolve(__dirname, 'src', 'config'),
'assets': path.resolve(__dirname, 'src', 'assets')
}
},
envDir: './',
server: {
port: 8080,
proxy: {
'/api': {
target: `${proxyHost.Host}`,
changeOrigin: true,
secure: false,
rewrite: path => path.replace(/^\/api/, proxyHost.Path)
},
'/test': {
target: `http://127.0.0.1:8081`,
changeOrigin: true,
secure: false,
rewrite: path => path.replace(/^\/test/, "")
}
}
}
})
}