Angular - переменные производственной среды во время развертывания - PullRequest
1 голос
/ 04 марта 2020

В соответствии с документацией angular, я понимаю, что производственные ключи могут быть помещены в "environment.prod.ts". Однако, что мне не очень понятно, когда на этапе сборки:

  1. Включены ли переменные в окончательную сборку? Если да, не сделает ли это переменные env доступными для публикации c, которая должна была быть секретной?

  2. Если переменные включены в сборку, что является правильным способ развертывания рабочей версии приложения? (Допустим, приложение будет размещено на базе Firebase)

Спасибо:)

1 Ответ

1 голос
/ 04 марта 2020

Для первого вопроса: если у вас есть что-то критическое, вы должны добавить его в свой бэкэнд, а не во внешний интерфейс, например, там должно быть большинство секретных ключей.

Для секунд: обычно я делаю это

В environment.prod.ts вместо реальных значений я ставлю заполнители, например

{
   api_url: '#!api_url!#'
}

Так что это будет построено по этим значениям, и во время развертывания я заменяю эти заполнители с фактическими значениями, в файле main*.js.

Если вы автоматизировали развертывание, в Azure Devops и Octapus для этого есть несколько задач, наверняка в Jenkins тоже должно быть что-то.

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

Другая причина наличия заполнителей заключается в том, что вы не сохраняете их в управлении исходным кодом, и, например, в теле нет Команда разработчиков получит доступ к конфигам prod, и все это перейдет в руки инженеров devops

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