【发布时间】:2021-09-09 04:54:57
【问题描述】:
我在我的 lib 文件夹中使用多个 dart main 文件来传递不同的应用程序配置,具体取决于每个服务器将使用的服务器。
main_dev.dart 示例
void main() async {
FlavorConfig(
flavorName: 'test',
values: {
'BASE_URL': 'http://$MY_IP:9002/graphql',
'WS_URL': 'ws://$MY_IP:9002/graphql',
},
);
await runApp(ProviderApp());
}
目前我有main_test.dart 和main_live.dart,并且在构建android 应用程序时一切正常。
示例我使用以下命令构建测试应用程序。
flutter build apk --obfuscate --split-debug-info=./build/app/outputs/symbols lib/main_test.dart
注意最后一部分 lib/main_test.dart 我指定了我打算使用的文件,它非常适合构建 android 应用程序。
但我在 web 上尝试过类似的事情,但我收到以下错误,因为在我看来构建 web 应用程序需要 main.dart。
目标 dart2js 失败:异常: .dart_tool/flutter_build/11c1feed0a867bb072ab6c7b64967a31/main.dart:8:8: 错误:读取“lib/main.dart”时出错:读取错误 'lib/main.dart'(系统找不到指定的文件。)导入 'package:my_amazing_app/main.dart' 作为入口点; ^ .dart_tool/flutter_build/11c1feed0a867bb072ab6c7b64967a31/main.dart:13:3: 错误:找不到方法:'main'。入口点.main(); ^^^^ 错误: 编译失败。
为 Web 编译 lib\main.dart...
20.3s 异常:无法为 Web 编译应用程序。
如何在 web 命令中也指定我想要的文件?
我尝试了以下但没有成功flutter build web lib/main_test.dart
【问题讨论】:
-
Flutter web as of yet doesn't support flavors, 所以解决方法似乎是使用 Firebase 构建目标。就个人而言,我只会使用environment variables。