angular - 在运行时更改角度环境变量
问题描述
我希望能够更改我的 Angular 在构建时从服务器获取资源的 url。我会在构建过程中传递一个参数来更改 url 值背后的原因是为了部署在不同的 docker 容器中。
环境.docker.ts
export const environment = {
...
url: "localhost:8080"
};
我想要类似 : 的东西ng build --env docker --url:"localhost:9090"
,它将在构建时更新默认值。
解决方案
创建环境文件environment.prod.ts
:
export const environment = {
production: true,
apiUrl: '$BACKEND_URL'
};
运行ng build --prod true
。
现在在运行之前,替换所有生成的 html 文件中的变量:
cd dist;
find . -type f -exec sed -i 's~\$BACKEND_URL~https://mybackend.domain.com~g' {} \;
然后,您可以在运行之前运行此替换命令,例如在运行时运行 docker 容器之前。
PS:您只能在它替换“就地”变量后运行该命令,如果需要,请制作 dist 的备份副本。
推荐阅读
- bash - 从文件bash替换字符串中的点
- stl - 通过 gdb 将 c++ 变量传递给 python
- python - 来自 sklearn 的 Graphviz 找不到我的文件?
- r - 使用 ggplot2 将标题和另一条线添加到折线图
- sql - 在postgresql中随机化没有时区的时间戳
- xero-api - 我可以将 Stitch 与多个 Xero 帐户一起使用吗?
- mysql - 仅当记录列匹配三个条件时才显示 DISTINCT user_id
- javascript - 使用节点 JS 读取 pdf 文件
- sql - 仅检索我在另一个表中没有的用户
- c# - 如何在 ListView Visual Studio 中加载对象类型数据