如何在proxy.conf.json或proxy.conf.js中动态定义端口

时间:2017-09-15 10:10:30

标签: node.js angular angular-cli

我有angular4应用程序,出于开发目的,我使用npm run start开始,start定义为"start": "ng serve --proxy=proxy.conf.json"。我也有

{
    "/api/**": {
      "target": "http://localhost:8080/api/"
    }
}

proxy.conf.json中定义。 有没有办法动态定义端口或整个URL。喜欢npm run start --port=8099

PS

http://localhost:8080/api/是我的后端API的网址。

2 个答案:

答案 0 :(得分:2)

我也没有找到插值.json文件的方法,但是可以使用.js文件

例如

proxy.conf.js

var process = require("process");
var BACKEND_PORT = process.env.BACKEND_PORT || 8080;
const PROXY_CONFIG = [
    {
        context: [
            "/api/**"
        ],
        target: "http://localhost:"+BACKEND_PORT+"/api/
    },
];
module.exports = PROXY_CONFIG;

向package.json添加新命令(注意.js不是.json)

"startOn8090": "BACKEND_PORT=8090 && ng serve --proxy=proxy.conf.js"

或仅在您的shell脚本中设置env变量并调用npm run-script start

答案 1 :(得分:0)

.angular.cli.json

....
"defaults": {
  "serve": {
    "port": 9000
  }
}
....

使代理在端口9000上可用,而不是默认的4200。