提交 | 用户 | age
|
2f6253
|
1 |
import fs from 'fs'; |
bb3b8f
|
2 |
import path from 'path'; |
2f6253
|
3 |
import dotenv from 'dotenv'; |
bb3b8f
|
4 |
|
99ac30
|
5 |
export function isDevFn(mode: string): boolean { |
bd7b53
|
6 |
return mode === 'development'; |
2f6253
|
7 |
} |
陈 |
8 |
|
99ac30
|
9 |
export function isProdFn(mode: string): boolean { |
bd7b53
|
10 |
return mode === 'production'; |
2f6253
|
11 |
} |
陈 |
12 |
|
2f1fbf
|
13 |
/** |
V |
14 |
* Whether to generate package preview |
|
15 |
*/ |
2f6253
|
16 |
export function isReportMode(): boolean { |
陈 |
17 |
return process.env.REPORT === 'true'; |
|
18 |
} |
2f1fbf
|
19 |
|
V |
20 |
// Read all environment variable configuration files to process.env |
8a9ca4
|
21 |
export function wrapperEnv(envConf: Recordable): ViteEnv { |
2f6253
|
22 |
const ret: any = {}; |
陈 |
23 |
|
bd7b53
|
24 |
for (const envName of Object.keys(envConf)) { |
V |
25 |
let realName = envConf[envName].replace(/\\n/g, '\n'); |
e8aede
|
26 |
realName = realName === 'true' ? true : realName === 'false' ? false : realName; |
8a9ca4
|
27 |
|
e8aede
|
28 |
if (envName === 'VITE_PORT') { |
B |
29 |
realName = Number(realName); |
|
30 |
} |
|
31 |
if (envName === 'VITE_PROXY') { |
|
32 |
try { |
|
33 |
realName = JSON.parse(realName); |
|
34 |
} catch (error) {} |
|
35 |
} |
2f6253
|
36 |
ret[envName] = realName; |
陈 |
37 |
process.env[envName] = realName; |
|
38 |
} |
|
39 |
return ret; |
|
40 |
} |
bb3b8f
|
41 |
|
2f1fbf
|
42 |
/** |
V |
43 |
* Get the environment variables starting with the specified prefix |
|
44 |
* @param match prefix |
|
45 |
* @param confFiles ext |
|
46 |
*/ |
bb3b8f
|
47 |
export function getEnvConfig(match = 'VITE_GLOB_', confFiles = ['.env', '.env.production']) { |
N |
48 |
let envConfig = {}; |
|
49 |
confFiles.forEach((item) => { |
|
50 |
try { |
|
51 |
const env = dotenv.parse(fs.readFileSync(path.resolve(process.cwd(), item))); |
|
52 |
envConfig = { ...envConfig, ...env }; |
|
53 |
} catch (error) {} |
|
54 |
}); |
8a9ca4
|
55 |
|
bb3b8f
|
56 |
Object.keys(envConfig).forEach((key) => { |
N |
57 |
const reg = new RegExp(`^(${match})`); |
|
58 |
if (!reg.test(key)) { |
|
59 |
Reflect.deleteProperty(envConfig, key); |
|
60 |
} |
|
61 |
}); |
|
62 |
return envConfig; |
|
63 |
} |
|
64 |
|
2f1fbf
|
65 |
/** |
V |
66 |
* Get user root directory |
|
67 |
* @param dir file path |
|
68 |
*/ |
8a9ca4
|
69 |
export function getRootPath(...dir: string[]) { |
bb3b8f
|
70 |
return path.resolve(process.cwd(), ...dir); |
N |
71 |
} |