前端代码中如何使用 ENV 配置

  • Choerodon平台版本:0.23

  • 运行环境:自主搭建

  • 问题描述:

遇到的情况

现在项目中存在两种 .env 的使用方式,一种是 window._env_.{XXX}, 一种是 process.env.{XXX};

  1. 修改 .env 之后, 能通过 window._env_,但是无法通过 process.env.{XXX} 获取。
  2. 部分代码使用了 process.env.API_HOST 这种方式来获取环境变量。例如:
// choerodon-front-boot 中的 AvatarUploader.js

    getUploadProps() {
    const { intl, id, intlPrefix } = this.props;
    return {
      // ...
      accept: 'image/jpeg, image/png, image/jpg',
      action: id && `${process.env.API_HOST}/iam/v1/users/${id}/upload_photo`,
      headers: {
        Authorization: `bearer ${getCookie('access_token')}`,
      },
      // ...
    };
  }

问题:

  1. 推荐使用 window._env_ 还是 process.env.{XXX}
  2. 如果使用 process.env.{XXX} 的话,是应该在 choerodon-front-boot 中修改 webpack 配置,还是在子模块中进行配置?

日常开发中 在.env文件中定义的环境变量 可以通过window._env_来获取 process.env只是用于choerodon-front-boot进行一些非运营时的变量提取 日常开发中不使用

问题已解决