独立Dart程序中--dart-define参数无法正常生效问题排查
独立Dart程序使用--dart-define的正确方式
你的问题出在命令参数的位置错误:--dart-define是Dart SDK命令的参数,必须放在脚本文件名之前,而非之后。
错误命令:
dart main.dart --dart-define=MY_VALUE=SOME_VALUE
这里--dart-define会被当作main.dart的程序参数,而非Dart编译/运行时的环境变量参数,所以程序始终读取默认值。
正确命令:
dart --dart-define=MY_VALUE=SOME_VALUE main.dart
将--dart-define放在dart命令与脚本文件之间,Dart运行时才能正确解析这个编译时环境变量。
补充说明:
- 传递多个环境变量时,重复
--dart-define参数即可:
dart --dart-define=VAR1=VAL1 --dart-define=VAR2=VAL2 main.dart
- Flutter应用中
flutter run --dart-define=...能生效,是因为flutter命令会自动将该参数转发给底层Dart编译流程,参数位置要求和纯Dart程序不同。
用正确命令运行你的代码,即可输出My value: SOME_VALUE。
内容的提问来源于stack exchange,提问作者Ashutosh Singh
相关产品推荐
相关产品推荐

