Browse Source
fix: support various vite modes of build, not just production (#832)
(cherry picked from commit bcc4773fbfc3dd1b7a24655bc731be830ad6d72d)
pull/836/head
周旭
5 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with
19 additions and
4 deletions
-
build/utils.ts
|
|
|
@ -39,22 +39,37 @@ export function wrapperEnv(envConf: Recordable): ViteEnv { |
|
|
|
return ret; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 获取当前环境下生效的配置文件名 |
|
|
|
*/ |
|
|
|
function getConfFiles() { |
|
|
|
const script = process.env.npm_lifecycle_script; |
|
|
|
const reg = new RegExp('--mode ([a-z]+) '); |
|
|
|
const result = reg.exec(script as string) as any; |
|
|
|
if (result) { |
|
|
|
const mode = result[1] as string; |
|
|
|
return ['.env', `.env.${mode}`]; |
|
|
|
} |
|
|
|
return ['.env', '.env.production']; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* Get the environment variables starting with the specified prefix |
|
|
|
* @param match prefix |
|
|
|
* @param confFiles ext |
|
|
|
*/ |
|
|
|
export function getEnvConfig(match = 'VITE_GLOB_', confFiles = ['.env', '.env.production']) { |
|
|
|
export function getEnvConfig(match = 'VITE_GLOB_', confFiles = getConfFiles()) { |
|
|
|
let envConfig = {}; |
|
|
|
confFiles.forEach((item) => { |
|
|
|
try { |
|
|
|
const env = dotenv.parse(fs.readFileSync(path.resolve(process.cwd(), item))); |
|
|
|
envConfig = { ...envConfig, ...env }; |
|
|
|
} catch (error) {} |
|
|
|
} catch (e) { |
|
|
|
console.error(`Error in parsing ${item}`, e); |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
const reg = new RegExp(`^(${match})`); |
|
|
|
Object.keys(envConfig).forEach((key) => { |
|
|
|
const reg = new RegExp(`^(${match})`); |
|
|
|
if (!reg.test(key)) { |
|
|
|
Reflect.deleteProperty(envConfig, key); |
|
|
|
} |
|
|
|
|