build(frontend): vite 加载开发环境变量
- 使用 loadEnv 读取 VITE_DEV_PROXY_TARGET/VITE_DEV_PORT - 注入 public settings 与 dev proxy 使用同源后端地址
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
import { defineConfig, Plugin } from 'vite'
|
import { defineConfig, loadEnv, Plugin } from 'vite'
|
||||||
import vue from '@vitejs/plugin-vue'
|
import vue from '@vitejs/plugin-vue'
|
||||||
import checker from 'vite-plugin-checker'
|
import checker from 'vite-plugin-checker'
|
||||||
import { resolve } from 'path'
|
import { resolve } from 'path'
|
||||||
@@ -7,9 +7,7 @@ import { resolve } from 'path'
|
|||||||
* Vite 插件:开发模式下注入公开配置到 index.html
|
* Vite 插件:开发模式下注入公开配置到 index.html
|
||||||
* 与生产模式的后端注入行为保持一致,消除闪烁
|
* 与生产模式的后端注入行为保持一致,消除闪烁
|
||||||
*/
|
*/
|
||||||
function injectPublicSettings(): Plugin {
|
function injectPublicSettings(backendUrl: string): Plugin {
|
||||||
const backendUrl = process.env.VITE_DEV_PROXY_TARGET || 'http://localhost:8080'
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
name: 'inject-public-settings',
|
name: 'inject-public-settings',
|
||||||
transformIndexHtml: {
|
transformIndexHtml: {
|
||||||
@@ -35,15 +33,21 @@ function injectPublicSettings(): Plugin {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export default defineConfig({
|
export default defineConfig(({ mode }) => {
|
||||||
plugins: [
|
// 加载环境变量
|
||||||
vue(),
|
const env = loadEnv(mode, process.cwd(), '')
|
||||||
checker({
|
const backendUrl = env.VITE_DEV_PROXY_TARGET || 'http://localhost:8080'
|
||||||
typescript: true,
|
const devPort = Number(env.VITE_DEV_PORT || 3000)
|
||||||
vueTsc: true
|
|
||||||
}),
|
return {
|
||||||
injectPublicSettings()
|
plugins: [
|
||||||
],
|
vue(),
|
||||||
|
checker({
|
||||||
|
typescript: true,
|
||||||
|
vueTsc: true
|
||||||
|
}),
|
||||||
|
injectPublicSettings(backendUrl)
|
||||||
|
],
|
||||||
resolve: {
|
resolve: {
|
||||||
alias: {
|
alias: {
|
||||||
'@': resolve(__dirname, 'src'),
|
'@': resolve(__dirname, 'src'),
|
||||||
@@ -102,17 +106,18 @@ export default defineConfig({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
server: {
|
server: {
|
||||||
host: '0.0.0.0',
|
host: '0.0.0.0',
|
||||||
port: Number(process.env.VITE_DEV_PORT || 3000),
|
port: devPort,
|
||||||
proxy: {
|
proxy: {
|
||||||
'/api': {
|
'/api': {
|
||||||
target: process.env.VITE_DEV_PROXY_TARGET || 'http://localhost:8080',
|
target: backendUrl,
|
||||||
changeOrigin: true
|
changeOrigin: true
|
||||||
},
|
},
|
||||||
'/setup': {
|
'/setup': {
|
||||||
target: process.env.VITE_DEV_PROXY_TARGET || 'http://localhost:8080',
|
target: backendUrl,
|
||||||
changeOrigin: true
|
changeOrigin: true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user