写一个自动根据域名改变config的函数
const hostRules = { dev: /^(?:127\.0\.0\.1|localhost)(?:\:\d*)?$/, sit: /^.+sit\.***\.com(?:\:\d*)?$/ pro: [] }; export function autoGetEnv(proHost = []) { hostRules.pro = [...hostRules.pro, ...proHost]; let currentEnv = 'dev'; const { host } = location; const { pro: proHostWhiteList, ...restHostRules } = hostRules; if (proHostWhiteList.find(hostname => hostname.include(host))) { currentEnv = 'pro'; } else { const restHostKeys = Object.keys(restHostRules); let env = restHostKeys.find((key) => restHostRules[key].test(host)); env = env || 'dev'; currentEnv = env; } return currentEnv; }
import DevConfig from './DevConfig'; import SitConfig from './SitConfig'; import ProdConfig from './ProdConfig'; import { autoGetEnv } from './APIConfig'; const VNENV={ dev: 'dev', sit: 'sit', pro: 'pro' } const PRO_HOST_LIST = ['*****']; const ENV = VNENV[autoGetEnv(PRO_HOST_LIST)]; let configTemp = {}; switch(ENV){ case 'pro': configTemp= new ProdConfig(); //生产 break; case 'sit': configTemp= new SitConfig(); //sit环境 break; case 'dev': configTemp- new DevConfig(); break; default: configTemp = new ProdConfig(); console.log('环境未配置,请检查'); } console.log(`当前环境:${ENV},版本:${__VERSION__}, 最后构建时间:${__BUILDDATE__}`); const Config =configTemp ;
export { ENV, Config };
日常所遇,随手而记。
浙公网安备 33010602011771号