/**
* add host for url & remove node bff
* @param {string} url url needed to be handle
* @param {string} env the build env
* @param {boolean} forceAddHost is force to add host to all url
* @param {string} prefix url with special prefix will be replace to empty
* @returns {string} the new url be handled
*/
function removeNodebffPrefix(url, env = 'prod', forceAddHost = false, prefix = '/bendbff') {
const isWholeUrl = url.indexOf('http') === 0 || url.indexOf('//') === 0;
const isNeedUpdate = url.indexOf(prefix) === 0;
if (isWholeUrl) {
// 完整url不需要处理
return url;
}
if (!forceAddHost && !isNeedUpdate) {
// 没有特殊前缀,且不需要强制添加host的,不需要处理
return url;
}
let hostname = '//gateway.ewt360.com';
switch (env) {
case 'sit':
case 'sit-local':
hostname = '//gateway.test.mistong.com';
break;
case 'pre':
case 'pre-local':
case 'prod':
case 'prod-local':
// 预发和生产环境保持域名一致,确保预发看到的和生产看到的代码是一致的
// 现在web项目没有预发域名,这里配置预发域名以后
// 本地仍然要切到预发host才可以查看预发效果
// 所以暂时不使用预发域名
// hostname = '//pre-gateway.ewt360.com';
// break;
hostname = '//gateway.ewt360.com';
break;
default:
hostname = '//gateway.ewt360.com';
}
return `${hostname}${url.replace(prefix, '')}`;
}
export default removeNodebffPrefix;
Source