60 lines
1.5 KiB
TypeScript
60 lines
1.5 KiB
TypeScript
|
|
/**
|
|||
|
|
* 环境工具函数
|
|||
|
|
*
|
|||
|
|
* 提供环境相关的配置,用于自动为 OSS 路径添加环境前缀(dev/test/prod)。
|
|||
|
|
* 这样不同环境的文件会存储在不同的目录下,互不干扰。
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* OSS 环境前缀映射
|
|||
|
|
*
|
|||
|
|
* 根据你的项目环境变量名修改此映射。
|
|||
|
|
* Vite 默认使用 import.meta.env.MODE,值通常为 development / test / production。
|
|||
|
|
*/
|
|||
|
|
const OSS_ENV_PREFIX_MAP: Record<string, string> = {
|
|||
|
|
development: "dev",
|
|||
|
|
test: "test",
|
|||
|
|
production: "prod",
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 获取当前 Vite 环境
|
|||
|
|
*/
|
|||
|
|
export function getViteEnv(): string {
|
|||
|
|
return import.meta.env.MODE || "development";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 获取 OSS 环境前缀
|
|||
|
|
*
|
|||
|
|
* @returns OSS 环境前缀(dev/test/prod)
|
|||
|
|
*/
|
|||
|
|
export function getOssEnvPrefix(): string {
|
|||
|
|
const env = getViteEnv();
|
|||
|
|
return OSS_ENV_PREFIX_MAP[env] || "dev";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 构建完整的 OSS 目录路径
|
|||
|
|
*
|
|||
|
|
* @param bizDir 业务目录(如:avatar, course/cover)
|
|||
|
|
* @returns 完整目录路径(如:dev/avatar, test/course/cover)
|
|||
|
|
*
|
|||
|
|
* @example
|
|||
|
|
* buildOssDirPath("avatar") // 开发环境 → "dev/avatar"
|
|||
|
|
* buildOssDirPath("course/cover") // 测试环境 → "test/course/cover"
|
|||
|
|
* buildOssDirPath() // 生产环境 → "prod"
|
|||
|
|
*/
|
|||
|
|
export function buildOssDirPath(bizDir?: string): string {
|
|||
|
|
const envPrefix = getOssEnvPrefix();
|
|||
|
|
|
|||
|
|
if (!bizDir) {
|
|||
|
|
return envPrefix;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 移除 bizDir 开头可能存在的环境前缀,避免重复
|
|||
|
|
const cleanBizDir = bizDir.replace(/^(dev|test|prod)\//, "");
|
|||
|
|
|
|||
|
|
return `${envPrefix}/${cleanBizDir}`;
|
|||
|
|
}
|