修改 nacos-federation 插件,实现 接口请求基地址从 配置中心获取,并注入到环境变量中
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { Plugin, ResolvedConfig } from 'vite';
|
||||
import { Plugin } from 'vite';
|
||||
import { nacosServiceManage, RegisterOptions } from './nacosServiceManage';
|
||||
|
||||
export function nacosRegVitePlugin(options?: Partial<RegisterOptions>): Plugin {
|
||||
@@ -6,11 +6,19 @@ export function nacosRegVitePlugin(options?: Partial<RegisterOptions>): Plugin {
|
||||
|
||||
return {
|
||||
name: 'vite-plugin-nacos',
|
||||
async configResolved(config: ResolvedConfig) {
|
||||
async configResolved(config) {
|
||||
|
||||
// 安全检查:确保 config.define 存在
|
||||
if (!config.define) {
|
||||
// @ts-ignore
|
||||
config.define = {};
|
||||
}
|
||||
console.log("config.define: ", config.define)
|
||||
|
||||
// 从环境变量和配置中获取Nacos配置(环境变量优先级更高)
|
||||
const env = config.env;
|
||||
|
||||
console.log("you env: ", env)
|
||||
|
||||
const registerOptions: RegisterOptions = {
|
||||
serverList: env.VITE_NACOS_ADDRESS || options?.serverList!,
|
||||
serviceName: env.VITE_SERVER_NAME || options?.serviceName!,
|
||||
@@ -33,6 +41,19 @@ export function nacosRegVitePlugin(options?: Partial<RegisterOptions>): Plugin {
|
||||
// 初始化Nacos实例
|
||||
nacosInstance = await nacosServiceManage.create(registerOptions);
|
||||
|
||||
const baseUrl = await nacosInstance.configClient.getConfig("baseUrl", "DEFAULT_GROUP")
|
||||
const baseUrlConfig = baseUrl ? JSON.parse(baseUrl) : {};
|
||||
console.log("[vite-plugin-nacos] 从Nacos配置发现获得接口地址: ", baseUrlConfig)
|
||||
|
||||
|
||||
const customizeEnv: Record<string, string> = {};
|
||||
Object.keys(baseUrlConfig).forEach(key => {
|
||||
const envKey = `import.meta.env.VITE_${ key.toUpperCase() }`;
|
||||
customizeEnv[envKey] = JSON.stringify(baseUrlConfig[key]);
|
||||
});
|
||||
|
||||
// @ts-ignore
|
||||
Object.assign(config.define, customizeEnv);
|
||||
},
|
||||
async closeBundle() {
|
||||
// // 服务关闭时注销Nacos实例
|
||||
|
||||
Reference in New Issue
Block a user