Angular proxy.conf.js从CI / CD传递环境变量

时间:2019-12-03 06:21:01

标签: angular continuous-integration environment-variables continuous-deployment

是否可以使用CI / CD的环境变量来传递服务器URL?

我正在尝试为我的项目进行CI / CD测试。问题是,对于角柏测试,我需要访问服务器。根据谁在运行管道,他们将有权访问不同的服务器,因此我希望他们能够使用bitbucket上的环境变量来更改proxy.conf.json。

我当前的proxy.conf.json是:

{
  "/api": {
    "target": "localhost:3000",
    "secure": false,
    "pathRewrite": {
      "^/api": "/api"
    },
    "changeOrigin": true
  }
}

我想要实现:

{
  "/api": {
    "target": $MY_SERVER_ENV_VARIABLE,
    "secure": false,
    "pathRewrite": {
      "^/api": "/api"
    },
    "changeOrigin": true
  }
}

所以我想从Bitbucket CI / CD传递$ MY_SERVER_ENV_VARIABLE。 有可能吗?

1 个答案:

答案 0 :(得分:1)

其中一个选项是制作js conf文件而不是json文件。 Here是文档。

现在您可以使用NodeJS process全局变量。您可以通过它获取env变量。

因此,proxy.conf.js的代码为:

const DEFAULT_TARGET = "localhost:3000";
const PROXY_CONFIG = {
  "/api": {
    "target": process.env.YOUR_ENV_VARIABLE || DEFAULT_TARGET,
    "secure": false,
    "pathRewrite": {
      "^/api": "/api"
    },
    "changeOrigin": true
  }
};

module.exports = PROXY_CONFIG;

不要忘记在angular.json文件中更改配置文件的路径。