javascript - Angular 中的操作系统环境变量

标签 javascript angular typescript docker environment-variables

我知道 Angular 中的 environment.ts 文件,但我最终将敏感数据提交到我的 git 存储库中。在 Java 中,我可以只引用我可以在我的服务器上设置的操作系统环境变量。

在我们公司,CI 对接我们所有的应用程序并将它们推送到 OpenShift 中,这意味着我无权访问文件系统,所以我不能只是手动将生产环境 .ts 放在那里。

有人知道如何获取操作系统环境变量吗?

最佳答案

  1. 有一个服务于配置的 API,并从 Angular 检索它

    app.get("/api/config/default", function(req, res) {
      res.send({
       a: process.env["A_VAR"]
      });
    })
    
  2. 让您的后端生成 Angular 常量

    app.get("/generated-config.js", function(req, res) {
      res.send(
        "angular.module('myApp').constant('MY_CONFIG',"
         + "{'a': \"" + process.env["A_VAR"] + "\""
         + "})"
       );
    });
    

    为此您可以使用 ng-constant . 我更喜欢这种方法,因为阻止依赖于此配置的 Angular Controller 和服务变得非常容易。就我而言,后端生成此文件并将其与其余静态文件一起提供。

关于javascript - Angular 中的操作系统环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51191273/

相关文章:

javascript - react onClick 键码未定义?

c# - 在 SSL/TLS 证书下,对 ASP.NET 的 Angular 请求返回 "Error Unknown"

angular - 如何轻松地将 Observable 转换或分配给 Behavior Subject,以便其他组件可以共享它

javascript - 在 RxJS 中以 block 的形式运行一组可观察对象

angular - Ionic2 下拉刷新功能

javascript - 使用 Highlight.js 在 Jekyll Github 页面中显示 C# <summary> 标签

javascript - 向 javascript 函数循环添加计数器

javascript - 如何关闭并稍后在 D3.JS 中添加 HTML 元素?

javascript - 为什么这个 typescript 程序永远不会结束?

angular - 使用 getter 和 setter 拦截@Input 变化