关于create-react-app打包上线的问题

我的问题是开发环境和生产环境请求的api前缀是不一样的

例如:
开发请求地址:192.168.1.100:3000/login
生产请求地址:192.168.1.200:3000/login

那么需要一种方式来区分不同环境使用的地址前缀,网上我看了两种方式

1。根据process.env.NODE_ENV变量,给axios设置baseURL

const getBaseUrl = () => {
    const ENV = process.env.NODE_ENV;
    if(ENV === 'development'){
        return 'http://192.168.1.100:3000';
    }else if(ENV === 'production'){
        return 'http://192.168.1.200:3000';
    }
}
const instance = axios.create({
    baseURL: getBaseUrl(),
    timeout: 10000
});

2。直接给axios的baseURL写死为上线环境的地址,然后开发环境代理到测试服务器

"proxy": "http://192.168.1.100:3000"

想问下大家在项目中是怎么处理的?

阅读 917
评论
    5 个回答
    • 3.9k

    项目中通常使用第一种:Just Keep Simple

    原因如下:

    1. 第一种前后端分离度高
    2. 第一种代码易懂,语意明确
    3. 第二种需要在前端修改配置文件(如果你使用webpack)进行代理转发;或者自己启动一个转发服务器。太麻烦了。
      相似问题
      推荐文章