我想配置日志库的方式与同事不同,并且我不想冒险检查本地配置,即:
void main() {
LOG.minLevel = Logger.VERBOSE;
LOG.showSymbols = false;
runApp( RestartWidget(child: ResponsApp()) );
}
我当然可以在每次提交时手动排除这些行,但我迟早会忘记这样做。
防止此代码意外签入并在同事计算机上运行的最佳方法是什么?有什么方法可以静默地检查Flutter / Dart中的环境变量(类似kDebugMode
/ kReleaseMode
,但只能在本地计算机上自定义)?
我正在使用IntelliJ btw。
答案 0 :(得分:2)
您可以使用编译时环境变量:
--dart-define
flutter run
(和其他构建命令)允许您使用--dart-define
传递环境变量。
语法如下:
flutter run --dart-define=VARIABLE_ONE=test --dart-define=VARIABLE_TWO=42
.fromEnvironment
您可以使用三个预定义的环境获取器:String.fromEnvironment
(基本函数),int.fromEnvironment
和bool.fromEnvironment
。
第一个参数是变量名,第二个参数是后备值。
因此,如果要使用不同的日志模式,可以执行以下操作:
void main() {
switch (const String.fromEnvironment('MIN_LOG_LEVEL', 'verbose')) {
case 'verbose':
LOG.minLevel = Logger.VERBOSE;
break;
case 'info':
..
break;
...
}
...
}
flutter run --dart-define=MIN_LOG_LEVEL=info
环境变量仅在dart2js(网络发行版)中与const
修饰符一起使用,因为它们仅作为编译时常量而不是运行时获取程序。参见GitHub issue for reference。