65 lines
1.9 KiB
TypeScript
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/, "")
|
|
}
|
|
}
|
|
}
|
|
})
|
|
}
|
|
|