如何在 proxy.conf.json 或 proxy.conf.js 中动态定义端口
Posted
技术标签:
【中文标题】如何在 proxy.conf.json 或 proxy.conf.js 中动态定义端口【英文标题】:How to define port dynamically in proxy.conf.json or proxy.conf.js 【发布时间】:2018-02-24 11:58:51 【问题描述】:我有 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
?
附言
http://localhost:8080/api/
是我的后端 API 的 URL。
【问题讨论】:
【参考方案1】:我也没有找到插入 .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脚本中设置环境变量并调用npm run-script start
【讨论】:
【参考方案2】:在.angular.cli.json
....
"defaults":
"serve":
"port": 9000
....
使代理在端口 9000 而不是默认的 4200 上可用。
【讨论】:
它使 Angular 前端在另一个端口上运行,而不是将请求代理到另一个端口。无论如何,编辑文件不是我想要的。我已经可以编辑 proxy.conf.js* 文件了。 我可以,但是...我不想依赖于不同的开发人员的免费 pprts。机器。它是真正的本地参数。这个文件在 git 下,如果一个开发者改变它,根据他的配置,它会破坏所有其他人的工作。我可以在我的后端做到这一点,为什么不在这里尝试呢?从命令行、环境或其他地方获取它!。 @glebiuskv 你找到解决办法了吗? @AlexanderPavlov 否 :(以上是关于如何在 proxy.conf.json 或 proxy.conf.js 中动态定义端口的主要内容,如果未能解决你的问题,请参考以下文章
当我使用 ng build 时,proxy.conf.json 在 Angular 6 中不起作用
当角靴和弹簧靴捆绑在一次战争中并部署在tomcat上时,是否需要proxy.conf.json文件