К сожалению, .env, похоже, не работает с сетью, как вы заметили. Надеюсь, в конечном итоге он будет интегрирован, но сейчас, когда у меня возникла такая же проблема, я обнаружил, что рекомендуемый способ настройки Интернета включает использование переменных среды и параметра dart-define
:
String urlBase = const String.fromEnvironment("url_base");
Таким образом, вы может настроить среду запуска и сборки с различными переменными.
К сожалению, это не совсем так, как «установить и забыть», как файл .env, поэтому я предпочитаю ставить на него такую защиту, чтобы вы сразу узнаете об этом, когда попытаетесь запустить:
if (urlBase == null) {
throw Exception("You must define url_base. This can be done "
"with the --dart-define arg to run or build");
}
Если вы используете IDE, вам нужно будет передать параметры. Для кода Visual Studio вы можете сделать это с файлом launch.json
примерно так:
"configurations": [
{
"name": "Flutter",
"request": "launch",
"type": "dart",
"args": [
"--dart-define",
"url_base=https://myurl.com/base"
]
}
]
А для IntelliJ / Android Studio вы можете сделать это в конфигурации запуска:
Конфигурация запуска IntelliJ
Независимо от того, что вы используете для своих инструментов сборки, это так же просто, как добавление дополнительного параметра к команде flutter build web
, то есть с помощью docker:
RUN /usr/local/flutter/bin/flutter build web --dart-define url_base=$url_base