Для первого вопроса: если у вас есть что-то критическое, вы должны добавить его в свой бэкэнд, а не во внешний интерфейс, например, там должно быть большинство секретных ключей.
Для секунд: обычно я делаю это
В environment.prod.ts вместо реальных значений я ставлю заполнители, например
{
api_url: '#!api_url!#'
}
Так что это будет построено по этим значениям, и во время развертывания я заменяю эти заполнители с фактическими значениями, в файле main*.js
.
Если вы автоматизировали развертывание, в Azure Devops
и Octapus
для этого есть несколько задач, наверняка в Jenkins
тоже должно быть что-то.
Делая это, вы также будете выполнять иметь возможность развертывать один и тот же пакет в другой среде, поскольку замена токена на значения происходит перед каждым развертыванием
Другая причина наличия заполнителей заключается в том, что вы не сохраняете их в управлении исходным кодом, и, например, в теле нет Команда разработчиков получит доступ к конфигам prod, и все это перейдет в руки инженеров devops