写一个自动根据域名改变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 };

 

posted on 2022-02-26 17:23  执候  阅读(44)  评论(0)    收藏  举报