动态更改代理配置目标

时间:2019-03-25 09:07:42

标签: angular

在我的有角度的应用程序中,我使用的是由一些代理组成的代理配置文件。我的文件看起来像这样。

proxy.conf.json

{
  "/login": {
    "target": "http://w3:8080",
    "changeOrigin":true,
    "secure": false
  },   
  "/api/usersvcs/*": {
    "target": "http://w3:8080",
    "pathRewrite": {"^/api/usersvcs": ""},
    "secure": false,
    "logLevel":"debug"
  },
  "/api/ordersvcs/*": {
    "target": "http://w3:8989",
    "pathRewrite": {"^/api/ordersvcs": ""},
    "changeOrigin":true,
    "secure": false,
    "logLevel":"debug"
  },
  "/api/paymentsvcs/*": {
    "target": "http://w3:9898",
    "pathRewrite": {"^/api/paymentsvcs": ""},
    "changeOrigin":true,
    "secure": false,
    "logLevel":"debug"
  },
}

此文件位于我项目的根目录中(在 src 文件夹之外)。 每次需要与不同端口上托管的其他后端服务一起使用时,都需要更改目标参数。在上面的文件中,我正在使用 w3 ,然后是冒号后面的端口号。 如果要使用 w5 ,则必须更改整个路径目标。

{
  "/login": {
    "target": "http://w5:8080",
    "changeOrigin":true,
    "secure": false
  },   
  "/api/usersvcs/*": {
    "target": "http://w5:8080",
    "pathRewrite": {"^/api/usersvcs": ""},
    "secure": false,
    "logLevel":"debug"
  },
  "/api/ordersvcs/*": {
    "target": "http://w5:8989",
    "pathRewrite": {"^/api/ordersvcs": ""},
    "changeOrigin":true,
    "secure": false,
    "logLevel":"debug"
  },
  "/api/paymentsvcs/*": {
    "target": "http://w5:9898",
    "pathRewrite": {"^/api/paymentsvcs": ""},
    "changeOrigin":true,
    "secure": false,
    "logLevel":"debug"
  },
}

我正在使用npm start命令,其中包含了proxy.conf.json文件,该文件看起来像下面的package.json

"scripts":{
   ...
   "start": "ng serve --proxy-config proxy.conf.json --o",
   ...
},

是否可以更改目标主机名,例如使用

npm start w5

然后代理文件应该类似于上面的文件,目标文件的w5。

0 个答案:

没有答案