Skip to content
9 / 13

Конфигурация фронтенда: что можно класть в бандл и как не утащить туда секрет

Всё, что попало в клиентский бандл, публично — это не «сложно достать», а «открыть DevTools». Поэтому переменные делятся на две группы: публичные (адрес API, идентификатор проекта аналитики, флаг окружения) и секретные (ключи провайдеров, токены, строки подключения), и вторые в браузер не попадают никогда. Фреймворки разделяют их соглашением о префиксе: только переменные с определённым префиксом подставляются в клиентский код, остальные доступны лишь на сервере. Второе решение — когда подставляется значение: на сборке (значение зашивается в файлы, для смены нужна пересборка) или в рантайме (значение приходит с сервера или из отдельного файла конфигурации). Сборочный вариант проще и быстрее, рантайм-вариант позволяет собрать образ один раз и катить его в несколько окружений. Практический компромисс — публичный config.json без кэша рядом с приложением, а на бэкенде — эндпоинт конфигурации для того, что зависит от пользователя.

Конфигурация фронтенда: что можно класть в бандл и как не утащить туда секрет | JScriptiser