#git #github #githooks #semaphore-ci
#git #github #githooks #семафор-ci
Вопрос:
У нас есть две среды. Этот код не может использовать переменные среды, так как это JavaScript на стороне клиента.
Нам нужно изменить ключ в объекте на основе среды. Я не хочу использовать оператор if, потому что в коде есть несколько мест.
Мне нужно только изменить его в среде развертывания Semaphore CI. Я думаю, может быть, лучшим способом может быть перехват после фиксации, и просто запустите инструмент командной строки, как sed
в нем, чтобы сделать что-то вроде %s/my_local_web/my_staging_web/g
. Я открыт для любых предложений или альтернативных способов мышления.
Ответ №1:
Предположительно, вы упаковываете свой интерфейсный код чем-то вроде webpack или parcel? Оба этих инструмента (и большинство их конкурентов) поддерживают конфигурацию, зависящую от среды:
Проблема в том, что переменные среды должны предоставляться во время сборки, а не во время выполнения. Они компилируются в выходные данные инструментов.
Комментарии:
1. Привет, Крис! На самом деле мы используем компилятор TypeScript и поэтому не используем parcel или webpack, но если это лучший способ, я заставлю его работать, чтобы включить это.
2. @jQwierdy, тогда, я думаю, вам придется добавить еще один инструмент. Насколько я могу судить, TypeScript изначально не поддерживает переменные среды во время сборки. Однако он работает практически со всеми инструментами сборки . Сегодня Webpack, вероятно, является наиболее широко используемым вариантом, но он не единственный.