#flutter #environment-variables #flutter-web
#flutter #переменные среды #flutter-web
Вопрос:
Я работал над своим приложением flutter с сборками среды, и я хотел бы изменить свой index.html файл в зависимости от типа веб-сборки, которую я выполняю.
Есть ли способ сделать это? У меня есть env.dart, который содержит нужные мне переменные, но я не знаю, как изменить index.html с моей переменной dart.
Спасибо вам.
Комментарии:
1. На самом деле это не очень хороший ответ, но когда мне нужно было сделать это в прошлом, я написал скрипт сборки на python, который изменяет html-файл, а затем запускает мои команды сборки.
Ответ №1:
Решение с помощью shellscript
В настоящее время я использую один, но это сценарий оболочки
Настройка для конкретной среды index.html
Из папки вашего проекта создайте среду, в которой вы будете хранить свои index.html файлы:
mkdir config
cd config
mkdir release
mkdir dev
mkdir uat
Затем скопируйте разные index.html (особенно из web/) в config/release/ config/dev/ и config/uat/
cp ../web/index.html release/ amp;amp; cp ../web/index.html dev/ amp;amp; cp ../web/index.html uat/
/! СОЗДАЙТЕ РЕЗЕРВНУЮ КОПИЮ ВАШЕГО ТЕКУЩЕГО ФАЙЛА, РАСПОЛОЖЕННОГО В WEB/INDEX.HTML
Скрипт скопирует index.html из ваших различных каталогов сред непосредственно в web/ и удалите текущий файл в web /. Я отказываюсь от какой-либо ответственности, если вы навсегда удалите файл. Вы предупреждены.
Файл сценария
Создайте файл сценария:
touch run.sh amp;amp; chmod x run.sh
скопируйте этот скрипт внутрь:
cp config/$1/index.html web/index.html amp;amp; flutter run -d chrome --no-sound-null-safety
Как использовать
И запустите ее либо с помощью ./run.sh release
, ./run.sh dev
либо ./run.sh dev
Используйте —dart-define для переменной, зависящей от вашей среды
Я также запускаю этот скрипт вместе с настройкой переменных среды с помощью --dart-define
flutter run --dart-define=MY_ENV_VARIABLE=ITS_VALUE
ПРИМЕЧАНИЕ: в настоящее время я отключаю защиту от нуля из-за библиотек моего проекта, которые еще не защищены от нуля.