38 lines
1.3 KiB
TypeScript
38 lines
1.3 KiB
TypeScript
import { dirname, resolve } from 'node:path';
|
||
import { fileURLToPath } from 'node:url';
|
||
import { loadEnv } from 'vite';
|
||
|
||
export const root: string = process.cwd();
|
||
|
||
/**
|
||
* @description 根据可选的路径片段生成一个新的绝对路径
|
||
* @param dir 路径片段,默认`build`
|
||
* @param metaUrl 模块的完整`url`,如果在`build`目录外调用必传`import.meta.url`
|
||
*/
|
||
export const pathResolve = (dir = '.', metaUrl = import.meta.url) => {
|
||
// 当前文件目录的绝对路径
|
||
const currentFileDir = dirname(fileURLToPath(metaUrl));
|
||
// build 目录的绝对路径
|
||
const buildDir = resolve(currentFileDir, 'build');
|
||
// 解析的绝对路径
|
||
const resolvedPath = resolve(currentFileDir, dir);
|
||
// 检查解析的绝对路径是否在 build 目录内
|
||
if (resolvedPath.startsWith(buildDir)) {
|
||
// 在 build 目录内,返回当前文件路径
|
||
return fileURLToPath(metaUrl);
|
||
}
|
||
// 不在 build 目录内,返回解析后的绝对路径
|
||
return resolvedPath;
|
||
};
|
||
|
||
/**
|
||
* 封装环境变量配置
|
||
* @param mode 当前模式
|
||
* @param prefix 需要过滤的前缀
|
||
* @link 参考:https://cn.vite.dev/config/#using-environment-variables-in-config
|
||
*/
|
||
export const wrapperEnv = (mode, prefix = '') => {
|
||
const env = loadEnv(mode, root, prefix);
|
||
return env;
|
||
};
|