我想以与我的同事不同的方式配置我们的日志库,并且我不想冒险检查我的本地配置,即:
void main() {
LOG.minLevel = Logger.VERBOSE;
LOG.showSymbols = false;
runApp( RestartWidget(child: ResponsApp()) );
}
Run Code Online (Sandbox Code Playgroud)
我当然可以在每次提交时手动排除这些行,但我迟早会忘记这样做。
防止此代码意外签入并在我同事的计算机上运行的最佳方法是什么?有什么方法可以默默地检查 Flutter/Dart 中的环境变量(类似于kDebugMode/kReleaseMode但我只能在本地计算机上自定义)?
顺便说一句,我正在使用 IntelliJ。
cre*_*not 11
您可以使用编译时环境变量:
--dart-defineflutter run(和其他构建命令)允许您使用--dart-define.
其语法如下:
flutter run --dart-define=VARIABLE_ONE=test --dart-define=VARIABLE_TWO=42
Run Code Online (Sandbox Code Playgroud)
.fromEnvironment您可以使用三个预定义的环境 getter:(String.fromEnvironment基本函数)、int.fromEnvironment和bool.fromEnvironment。
第一个参数是变量名称,第二个参数是后备值。
因此,如果你想要不同的日志模式,你可以这样做:
flutter run --dart-define=VARIABLE_ONE=test --dart-define=VARIABLE_TWO=42
Run Code Online (Sandbox Code Playgroud)
void main() {
switch (const String.fromEnvironment('MIN_LOG_LEVEL', 'verbose')) {
case 'verbose':
LOG.minLevel = Logger.VERBOSE;
break;
case 'info':
..
break;
...
}
...
}
Run Code Online (Sandbox Code Playgroud)
环境变量仅适用于constdart2js(Web 发布版本)中的修饰符,因为它们仅用作编译时常量,而不用作运行时 getter。请参阅GitHub 问题以供参考。
| 归档时间: |
|
| 查看次数: |
6299 次 |
| 最近记录: |