bazel + angular 项目的反向代理
Reverse proxy for bazel + angular project
我是 运行 一个使用 Bazel 构建的 angular,需要一个反向代理来更改我后端的主机和端口。通常我会在 angular.json 中创建一个服务命令,它使用代理设置实现构建器 @angular-devkit/build-angular:dev-server:
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "MyPackage:build",
"proxyConfig": "proxy.conf.json"
},
"configurations": {
"production": {
"browserTarget": "MyPackage:build:production"
}
}
}
但是由于我使用的是 Bazel,所以我使用的是另一个构建器 @bazel/angular:build
。不幸的是,这个构建器不支持我的代理配置,我会使用类似的东西:
{
"/apps": {
"target": "https://my.server:8080",
"secure": true,
"changeOrigin": true
}
}
有替代方案吗?
您可能已经看过此页面,但我会 link 以供参考:
https://bazelbuild.github.io/rules_nodejs/examples#angular
在“架构师”方法中,您使用 Bazel 进行构建,但 运行 标准 Angular 构建器。所以如果你只是想要一种快速的方法来保持功能,但将项目插入 Bazel,我会推荐它。
@bazel/angular:build
生成器是该页面上描述的“Google”方法的一部分。虽然它速度快且更“Bazel-native”,但它也使用不同的工具链。最值得注意的是,没有 webpack。
linked 示例使用 concatjs_devserver
:
https://github.com/bazelbuild/rules_nodejs/blob/stable/examples/angular/src/BUILD.bazel#L111
可惜没有代理功能。
您可以退回到“架构师”方法或编写您自己的 Bazel 规则来启动不同的开发服务器。另一种方法是 运行 在开发服务器和您的后端服务器之前使用一些反向代理。
我是 运行 一个使用 Bazel 构建的 angular,需要一个反向代理来更改我后端的主机和端口。通常我会在 angular.json 中创建一个服务命令,它使用代理设置实现构建器 @angular-devkit/build-angular:dev-server:
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "MyPackage:build",
"proxyConfig": "proxy.conf.json"
},
"configurations": {
"production": {
"browserTarget": "MyPackage:build:production"
}
}
}
但是由于我使用的是 Bazel,所以我使用的是另一个构建器 @bazel/angular:build
。不幸的是,这个构建器不支持我的代理配置,我会使用类似的东西:
{
"/apps": {
"target": "https://my.server:8080",
"secure": true,
"changeOrigin": true
}
}
有替代方案吗?
您可能已经看过此页面,但我会 link 以供参考:
https://bazelbuild.github.io/rules_nodejs/examples#angular
在“架构师”方法中,您使用 Bazel 进行构建,但 运行 标准 Angular 构建器。所以如果你只是想要一种快速的方法来保持功能,但将项目插入 Bazel,我会推荐它。
@bazel/angular:build
生成器是该页面上描述的“Google”方法的一部分。虽然它速度快且更“Bazel-native”,但它也使用不同的工具链。最值得注意的是,没有 webpack。
linked 示例使用 concatjs_devserver
:
https://github.com/bazelbuild/rules_nodejs/blob/stable/examples/angular/src/BUILD.bazel#L111
可惜没有代理功能。
您可以退回到“架构师”方法或编写您自己的 Bazel 规则来启动不同的开发服务器。另一种方法是 运行 在开发服务器和您的后端服务器之前使用一些反向代理。