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; };