47 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
const proxy = require('http-proxy-middleware');
 | 
						|
const ObjectAssign = require('object-assign');
 | 
						|
const { chalkError, chalkSuccess } = require('../config/chalk.config');
 | 
						|
 | 
						|
/**
 | 
						|
 *
 | 
						|
 * key :
 | 
						|
 *  [0]: /api
 | 
						|
 *  [1]: target url
 | 
						|
 *
 | 
						|
 * 预计写法:
 | 
						|
 *  1、 /api -> baidu.com : { }
 | 
						|
 *  2、 /user : function() { return {} }
 | 
						|
 *
 | 
						|
 * @param config
 | 
						|
 */
 | 
						|
module.exports = function(config) {
 | 
						|
  console.info(chalkSuccess('build proxy.%s.config 配置!'), process.env.NODE_ENV);
 | 
						|
 | 
						|
  const proxys = [];
 | 
						|
 | 
						|
  if (!config) {
 | 
						|
    console.log(chalkError('proxy.%s.config 没有配置!'), process.env.NODE_ENV);
 | 
						|
  }
 | 
						|
 | 
						|
  for (const key in config) {
 | 
						|
    if (/->/.test(key)) {
 | 
						|
      const keys = key.toString().split('->');
 | 
						|
      const source = keys[0].trim();
 | 
						|
      const target = keys[1].trim();
 | 
						|
 | 
						|
      if (typeof config !== 'object') {
 | 
						|
        console.log(
 | 
						|
          chalkError('%s: proxy.%s.config 初始化失败 config 类型为 object!'),
 | 
						|
          key,
 | 
						|
          process.env.NODE_ENV
 | 
						|
        );
 | 
						|
        break;
 | 
						|
      }
 | 
						|
 | 
						|
      proxys.push(proxy(source, ObjectAssign({ target }, config[key])));
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
  return proxys;
 | 
						|
};
 |