fix(ssr): read injected env in browser

This commit is contained in:
DIYgod 2026-03-17 18:26:42 +08:00
parent 338164b68c
commit 4f4618dc37
1 changed files with 18 additions and 1 deletions

View File

@ -40,8 +40,25 @@ function getRuntimeEnv() {
if (metaEnvIsEmpty()) {
return process.env
}
return import.meta.env
return injectExternalEnv(import.meta.env)
} catch {
return process.env
}
}
declare const globalThis: any
function injectExternalEnv<T>(originEnv: T): T {
if (!("document" in globalThis)) {
return originEnv
}
const prefix = "__followEnv"
const env = globalThis[prefix]
if (!env) {
return originEnv
}
for (const key in env) {
originEnv[key as keyof T] = env[key]
}
return originEnv
}