Рекомендации по автоматическому изменению файлов после регистрации на GitHub

#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, вероятно, является наиболее широко используемым вариантом, но он не единственный.