完成了 BOM 管理和生产管理,完成部分发料单、采购计划和调拨单。
This commit is contained in:
72
node/getEnv.ts
Normal file
72
node/getEnv.ts
Normal file
@@ -0,0 +1,72 @@
|
||||
import fs from "fs";
|
||||
import path from "path";
|
||||
import dotenv from "dotenv";
|
||||
|
||||
export type Recordable<T = any> = Record<string, T>;
|
||||
|
||||
export function isDevFn(mode: string): boolean {
|
||||
return mode === "development";
|
||||
}
|
||||
|
||||
export function isProdFn(mode: string): boolean {
|
||||
return mode === "production";
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否开启生成 package 报告
|
||||
*/
|
||||
export function isReportMode(): boolean {
|
||||
return process.env.VITE_REPORT === "true";
|
||||
}
|
||||
|
||||
/**
|
||||
* 重新解析 .env 的内容,重新封装类型,比如 .env 定义了 true,false,默认为字符串类型,需要转换为 boolean 类型
|
||||
*/
|
||||
export function wrapperEnv(envConf: Recordable): ImportMetaEnv {
|
||||
const ret: any = {};
|
||||
|
||||
for (const envName of Object.keys(envConf)) {
|
||||
let realName = envConf[envName].replace(/\\n/g, "\n");
|
||||
// 将 true 和 false 字符串转换为布尔值
|
||||
realName = realName === "true" ? true : realName === "false" ? false : realName;
|
||||
|
||||
// 指定变量名进行类型转换
|
||||
if (envName === "VITE_PORT") realName = Number(realName);
|
||||
ret[envName] = realName;
|
||||
process.env[envName] = realName;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* 从环境变量文件里获取变量值
|
||||
*
|
||||
* @param match 前缀
|
||||
* @param confFiles 文件列表
|
||||
*/
|
||||
export function getEnvConfig(match = "VITE_", confFiles = [".env", ".env.production", ".env.sit", ".env.uat"]) {
|
||||
let envConfig = {};
|
||||
confFiles.forEach(item => {
|
||||
try {
|
||||
const env = dotenv.parse(fs.readFileSync(path.resolve(process.cwd(), item)));
|
||||
envConfig = { ...envConfig, ...env };
|
||||
} catch (error) {
|
||||
console.error(`Error in parsing ${item}`, error);
|
||||
}
|
||||
});
|
||||
|
||||
Object.keys(envConfig).forEach(key => {
|
||||
const reg = new RegExp(`^(${match})`);
|
||||
if (!reg.test(key)) {
|
||||
Reflect.deleteProperty(envConfig, key);
|
||||
}
|
||||
});
|
||||
return envConfig;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取项目根路径
|
||||
*/
|
||||
export function getRootPath(...dir: string[]) {
|
||||
return path.resolve(process.cwd(), ...dir);
|
||||
}
|
||||
Reference in New Issue
Block a user