43 lines
1.0 KiB
TypeScript
43 lines
1.0 KiB
TypeScript
import { defineConfig, loadEnv } from 'vite'
|
|
import react from '@vitejs/plugin-react'
|
|
import { readFileSync } from 'node:fs'
|
|
|
|
type PackageConfig = {
|
|
appId?: string
|
|
name?: string
|
|
version?: string
|
|
}
|
|
|
|
const packageConfig = JSON.parse(readFileSync(new URL('./package.json', import.meta.url), 'utf-8')) as PackageConfig
|
|
|
|
// https://vite.dev/config/
|
|
export default defineConfig(({ mode }) => {
|
|
const env = loadEnv(mode, process.cwd(), '')
|
|
const baseURL = env.VITE_BASE_URL?.trim()
|
|
const appId = env.VITE_APP_ID?.trim() || packageConfig.appId || packageConfig.name || ''
|
|
|
|
return {
|
|
plugins: [react()],
|
|
define: {
|
|
__APP_ID__: JSON.stringify(appId),
|
|
__APP_VERSION__: JSON.stringify(packageConfig.version || ''),
|
|
},
|
|
server: baseURL
|
|
? {
|
|
proxy: {
|
|
'/api': {
|
|
target: baseURL,
|
|
changeOrigin: true,
|
|
},
|
|
},
|
|
}
|
|
: undefined,
|
|
// alias
|
|
resolve: {
|
|
alias: {
|
|
'@': `${process.cwd()}/src`,
|
|
},
|
|
},
|
|
}
|
|
})
|