110 lines
1.9 KiB
JavaScript
110 lines
1.9 KiB
JavaScript
/**
|
|
* 环境配置
|
|
* 根据编译环境自动切换 API 地址
|
|
*/
|
|
|
|
// 环境列表
|
|
export const ENV = {
|
|
DEV: 'development',
|
|
PROD: 'production',
|
|
TEST: 'test'
|
|
}
|
|
|
|
// 当前环境(默认测试环境)
|
|
let currentEnv = ENV.TEST
|
|
|
|
/**
|
|
* 设置当前环境
|
|
* @param {string} env - 环境名称
|
|
*/
|
|
export const setEnv = (env) => {
|
|
if (Object.values(ENV).includes(env)) {
|
|
currentEnv = env
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 获取当前环境
|
|
* @returns {string}
|
|
*/
|
|
export const getEnv = () => currentEnv
|
|
|
|
/**
|
|
* 环境配置
|
|
* 只配置域名,路由前缀在 request.js 中单独配置
|
|
*/
|
|
const ENV_CONFIG = {
|
|
[ENV.DEV]: {
|
|
name: '开发环境',
|
|
domain: 'https://memo.test.miaoall.cn',
|
|
debug: true,
|
|
aesKey: '12345678901234567890123456789012',
|
|
aesIv: '1234567890123456'
|
|
},
|
|
[ENV.TEST]: {
|
|
name: '测试环境',
|
|
domain: 'https://memo.test.miaoall.cn',
|
|
debug: true,
|
|
aesKey: '12345678901234567890123456789012',
|
|
aesIv: '1234567890123456'
|
|
},
|
|
[ENV.PROD]: {
|
|
name: '生产环境',
|
|
domain: 'https://memo.miaoall.cn',
|
|
debug: false,
|
|
aesKey: 'a1s2d3f4g5h6j7k8l9z0xq1w2e3r4t5y6',
|
|
aesIv: 'q1w2e3r4t5y6u7i8'
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 获取当前环境的配置
|
|
* @returns {Object}
|
|
*/
|
|
export const getEnvConfig = () => {
|
|
return ENV_CONFIG[currentEnv] || ENV_CONFIG[ENV.TEST]
|
|
}
|
|
|
|
/**
|
|
* 获取 API 域名
|
|
* @returns {string}
|
|
*/
|
|
export const getDomain = () => getEnvConfig().domain
|
|
|
|
/**
|
|
* 获取当前环境名称
|
|
* @returns {string}
|
|
*/
|
|
export const getEnvName = () => getEnvConfig().name
|
|
|
|
/**
|
|
* 是否为开发模式
|
|
* @returns {boolean}
|
|
*/
|
|
export const isDev = () => currentEnv === ENV.DEV
|
|
|
|
/**
|
|
* 是否为生产模式
|
|
* @returns {boolean}
|
|
*/
|
|
export const isProd = () => currentEnv === ENV.PROD
|
|
|
|
/**
|
|
* 是否为测试模式
|
|
* @returns {boolean}
|
|
*/
|
|
export const isTest = () => currentEnv === ENV.TEST
|
|
|
|
// 默认导出配置
|
|
export default {
|
|
ENV,
|
|
getEnv,
|
|
setEnv,
|
|
getEnvConfig,
|
|
getDomain,
|
|
getEnvName,
|
|
isDev,
|
|
isProd,
|
|
isTest
|
|
}
|