Переменные среды ОС в Angular - PullRequest
0 голосов
/ 05 июля 2018

Я знаю о файлах environment.ts в Angular, но с этими файлами я получаю конфиденциальные данные в моем git-репо. В Java я могу просто ссылаться на переменные среды ОС, которые я могу установить на своем сервере.

В нашей компании CI стыкует все наши приложения и помещает их в OpenShift, что означает, что у меня нет доступа к файловой системе, поэтому я не могу просто поместить туда рабочую среду. T вручную.

У кого-нибудь есть идеи, как добраться до переменных среды ОС?

Ответы [ 2 ]

0 голосов
/ 05 июля 2018
  1. Иметь API, который обслуживает конфигурацию, и извлекать его из углового

    app.get("/api/config/default", function(req, res) {
      res.send({
       a: process.env["A_VAR"]
      });
    })
    
  2. Пусть ваш сервер генерирует угловые константы

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

    Для которого вы можете использовать ng-constant . Мне больше нравится этот подход, потому что блокирование угловых контроллеров и сервисов, которые зависят от этой конфигурации, становится очень простым. В моем случае серверная часть генерирует этот файл и обслуживает его вместе с остальными статическими файлами.

0 голосов
/ 05 июля 2018

Если вы связываете ваше угловое приложение с веб-пакетом, вы можете использовать webpack.DefinePlugin .

plugins: [
    new webpack.DefinePlugin({
        "some_variable": JSON.stringify(process.env.SOME_ENV_VAR || "my_default_value")
    })
]

Тогда вы можете ссылаться на "some_variable" в вашем угловом приложении. Вы можете объявить их в файле typings.d.ts, чтобы они были распознаны.

declare const some_variable: string

У вас всегда может быть веб-служба, которая может обслуживать эти переменные и через вызовы API.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...