我正在使用angular-cli并使用代理将我的请求正确转发到我的后端我使用以下配置(proxy-config.json):
{
"/api/*": {
"target": "http://mybackend.com:1234",
"changeOrigin": true,
"secure": false,
"logLevel": "debug"
}
}
我使用ng serve --proxy-config proxy-config.json
这可以正常工作,但我在不同的端口上使用许多不同的分支进行测试,我希望能够轻松地将后端端口(在本例中为1234)更改为其他端口,而无需每次都编辑文件。 / p>
在一个带有grunt的angularjs项目中,我做了grunt serve:dev -r 1234
之类的事情,其中-r表示代理端口。
答案 0 :(得分:0)
您可以传递脚本而不是json作为proxy.conf.js;
//can be right next to angular.json
var process = require("process")
var BACKEND_PORT = process.env.BACKEND_PORT || 8080
console.log('backend port: ' + BACKEND_PORT)
const PROXY_CONFIG = {
"/api/*": {
"target": "http://localhost:" + BACKEND_PORT + "/api/",
"changeOrigin": true,
"logLevel": "debug"
}
}
module.exports = PROXY_CONFIG
要参数化环境,您可以使用类似的命令进行调用
ng serve ----configuration=confname #for instance production
告诉angular从Angular.json内的projectname.architect.serve.configurations.confname字段加载配置。所以您需要像这样定义它;
...{
...
"projects": {
"projectname": {
...
"serve": {
...
"configurations": {
"confname": {
"BACKEND_PORT": 80
}
},
...
},
...
}
}