#google-chrome-extension #environment-variables #azure-web-app-service
#google-chrome-extension #переменные среды #azure-web-app-service
Вопрос:
Спасибо за любую помощь, которую может предоставить сообщество!
- ОБОБЩЕННЫЙ ВОПРОС
- Я хочу жестко закодировать переменные среды в файлы javascript во время процесса сборки (или что-то подобное) в зависимости от того, в какую ветку GitHub передается код с помощью действий GitHub.
- Текущий процесс сборки отсутствует. Как я могу создать процесс сборки, который выполнит эту задачу?
- Есть ли альтернативы или лучший подход, чем создание процесса сборки? Есть ли какое-либо действие GitHub, которое может преобразовывать файлы для достижения того же результата?
- ПРЕДЫСТОРИЯ
- Мой проект представляет собой расширение Chrome, которое очищает ряд веб-сайтов для получения данных.
- При загрузке расширения в manifest.json указывается фоновый скрипт
- Затем фоновый скрипт отправляет запрос XMLHttpRequest на наш сервер, чтобы получить несколько других скриптов с нашего сервера, которые затем активируются в Chrome с помощью eval().
- Сценарии возвращаются с помощью request responseText и анализируются в JSON перед передачей в функцию eval() .
- Наш сервер размещен в службе приложений Azure.
- У нас есть две службы приложений для этого проекта, представляющие разные среды — разработку и производство
- Фоновый сценарий, указанный manifest.json, ищет сценарии в одном из трех разных мест — localhost, наш сервер разработки или наш производственный сервер
- В настоящее время мы должны жестко закодировать это значение перед развертыванием на сервере приложений
- ПРОБЛЕМА
- В нашем фоновом сценарии я хотел бы использовать переменную среды для указания местоположения сценариев, которые изменяются в зависимости от того, в какой ветке / службе приложений github находится код.
- Фоновый сценарий и сценарии, извлекаемые фоновым сценарием, не могут получить доступ к переменным среды, установленным в конфигурации службы приложений
- Сценарии возвращаются в фоновый сценарий в виде текста. Все эти сценарии выполняются на локальном компьютере, на котором установлено расширение Chrome, а не в службе приложений.
- РЕШЕНИЕ
- Я думал подойти к проблеме аналогично тому, как я смог указать переменные среды на основе ветвей для проекта React.
- В рабочем процессе Github определите, в какую ветку передается
- Используйте env-cmd, чтобы указать набор переменных среды для использования в процессе сборки
- env-cmd фактически жестко кодирует правильные переменные в коде во время процесса сборки
- Проблема с этим решением заключается в том, что расширение Chrome не имеет процесса сборки, подобного приложению React, поэтому у меня нет механизма для использования env-cmd для указания переменных,
- Я думал подойти к проблеме аналогично тому, как я смог указать переменные среды на основе ветвей для проекта React.
Комментарии:
1. Пожалуйста, обратитесь к переменным среды GitHub по умолчанию
2. Спасибо за ваш ответ, Харшита. Я не пытаюсь установить переменную среды для использования в рабочем процессе действий GitHub, а скорее хочу установить переменные среды в фактической сборке моей кодовой базы с помощью рабочего процесса действий GitHub. Я уже делал это раньше в проекте React с использованием env-cmd, к сожалению, в моем проекте расширения Chrome нет процесса сборки, как описано в основном сообщении. Я пытаюсь выяснить, могу ли я создать свой собственный процесс сборки для выполнения этой задачи или есть альтернативное решение.