【发布时间】:2021-09-20 16:20:59
【问题描述】:
我知道如果我先cd /tmp 然后dart create code,我会在/tmp/code/pubspec.yaml 中得到environment:<newline> sdk: '>=2.10.0 <3.0.0',这告诉我即使我运行的是 Dart v. 2.12.3,这个(默认)配置确实默认情况下不选择 null 安全性。
但是如果我创建一个空目录(mkdir /tmp/code),生成一个单行程序(echo "String a; " > /tmp/code/prog.dart),chdir(cd /tmp/code),然后运行(dart prog.dart),dart 会在哪里寻找@ 987654330@和package_config.json?
更新
我开始怀疑缺少 pubspec.yaml 不是 Dart 编程的认可用例。 pubspec.yaml 的存在是可以安装软件包的唯一方式,例如 (dart pub add <package-name>)。我得到的赎金结果(一个目录中的安全性为零;另一个目录中没有)仍然是一个谜,但如果pubspec.yaml 被省略,那么一致性可能就太高了。
【问题讨论】:
-
空安全是可选的。选择加入的机制是将 Dart 2.12(或更高版本)设置为
pubspec.yaml文件中所需的最低版本。否则,假定您打算让您的 Dart 代码与早期版本兼容。另见:stackoverflow.com/q/67045319 -
@jamesdlin 我明白了。我重新表述了这个问题以澄清。你能看到两个目录都缺少
pubspec.yaml文件,在一种情况下会触发错误(因此选择空安全),而在另一种情况下不会触发错误(选择退出)?
标签: dart dart-null-safety