Platform.environment 在 Dart 中不可用

问题描述 投票:0回答:1

如果我有 Dart 程序:

import 'dart:io';

void main() {
  final keyEnv = Platform.environment['KEY'];
  const keyString = String.fromEnvironment('KEY');
  print('keyEnv: $keyEnv');
  print('keyString: $keyString');
}

然后像这样运行它:

dart run --define=KEY=hello bin/main.dart

这是结果:

keyEnv: null
keyString: hello

为什么

KEY
变量无法从
Platform.environment
获得?我可以做什么来访问它?我正在使用 Dart 3.3.0 的 Mac 上进行测试。

dart environment-variables
1个回答
0
投票

Platform.environment
用于读取system的环境变量。它们是其他编程语言通常所说的环境变量。

例如,在

bash
(或 POSIX 系统的许多其他 shell)中,您通常会这样做:

$ KEY=hello dart bin/main.dart

$ export KEY=hello
$ dart bin/main.dart

在 Windows 上,你会这样做:

> set KEY=hello
> dart bin/main.dart

这与

String.fromEnvironment
bool.fromEnvironment
等读取的“编译配置环境”不同。注意文档

编译配置环境由编译或运行Dart程序的周边工具提供。

...

编译配置环境与POSIX进程的环境变量不一样。可以使用

Platform.environment
库中的
dart:io
在本机平台上访问这些内容。

© www.soinside.com 2019 - 2024. All rights reserved.