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

Node.js 如何在proxy.conf.json或proxy.conf.json中动态定义端口,node.js,angular,angular-cli,Node.js,Angular,Angular Cli,我有angular4应用程序,出于开发目的,我使用npm run start启动它,其中start定义为“start”:“ng serve--proxy=proxy.conf.json”。我也有 { “/api/**”:{ “目标”:http://localhost:8080/api/" } } 在proxy.conf.json中定义。 是否有一种方法可以动态定义端口或整个url。像npm运行启动--port=8099 PS http://localhost:8080/api/是我的后端API

我有angular4应用程序,出于开发目的,我使用
npm run start
启动它,其中
start
定义为
“start”:“ng serve--proxy=proxy.conf.json”
。我也有

{
“/api/**”:{
“目标”:http://localhost:8080/api/"
}
}
proxy.conf.json
中定义。 是否有一种方法可以动态定义端口或整个url。像
npm运行启动--port=8099

PS


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

位于
.angular.cli.json

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

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

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

e、 g

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)


或者只需在shell脚本中设置env变量并调用
npm run script start

即可使angular前端在另一个端口上运行,而不是将请求代理到另一个端口。无论如何,编辑文件不是我想要的。我已经可以编辑proxy.conf.js*文件了。我可以,但是。。。我不想依赖不同开发机器上的免费PPRT。它是真正的局部参数。这个文件在git下,若一个开发人员更改了它,根据他的配置,它将破坏所有其他人的工作。我可以在我的后端上做这件事,为什么不在这里试试呢?从命令行、env或其他地方获取它@你找到解决办法了吗?@AlexanderPavlov没有:(
"startOn8090": "BACKEND_PORT=8090 && ng serve --proxy=proxy.conf.js"