pubspec.yaml 中的配置标志如何工作?
How do configuration flags in pubspec.yaml work?
我正在学习 Flutter 和 Dart。我注意到 pubspec.yaml
文件似乎不仅仅包含第三方库的依赖版本。例如。
# The following section is specific to Flutter.
flutter:
uses-material-design: true
我知道 Dart Pub Tool 定义了 pubspec.yaml
的格式,而且像 Flutter 这样的框架似乎可以通过额外的设置来增强 pubspec.yaml
,从而引发以下问题:
pubspec.yaml
是设计用于提供配置标志还是仅提供依赖项?
- flutter 的方式是使用
pubspec.yaml
惯用的 Dart 还是独一无二的?
pubspec.yaml
仅由 pub
工具解析还是在运行时作为通用应用程序配置文件解析?
- Flutter 是否为
pubspec.yaml
实现了它自己的解析器,并使 uses-material-design: true
等设置在运行时可用?
Is pubspec.yaml designed to be used to provide configuration flags or only dependencies?
从历史上看,它还包含纯 Dart 项目中的构建设置。例如编译为 JS 的设置,但已移出 build.yaml
。参见 https://github.com/dart-lang/build/blob/master/build_config/README.md
Does the way flutter use pubspec.yaml
idiomatic Dart or unique?
这是 Flutter 独有的。
Does Flutter implement it's own parser for pubspec.yaml and make settings like uses-material-design: true
available at runtime?
是的。
不过这些设置是构建时设置,而不是运行时设置。
实际上我觉得很不幸,这个文件混淆了不同的用途。在早期的 Flutter 时代,Flutter 特定的设置在不同的文件中,但这也造成了一些困难(不知道细节 - 只在 GitHub 讨论中看到它)所以他们将它与 pubspec.yaml
合并.
我正在学习 Flutter 和 Dart。我注意到 pubspec.yaml
文件似乎不仅仅包含第三方库的依赖版本。例如。
# The following section is specific to Flutter.
flutter:
uses-material-design: true
我知道 Dart Pub Tool 定义了 pubspec.yaml
的格式,而且像 Flutter 这样的框架似乎可以通过额外的设置来增强 pubspec.yaml
,从而引发以下问题:
pubspec.yaml
是设计用于提供配置标志还是仅提供依赖项?- flutter 的方式是使用
pubspec.yaml
惯用的 Dart 还是独一无二的? pubspec.yaml
仅由pub
工具解析还是在运行时作为通用应用程序配置文件解析?- Flutter 是否为
pubspec.yaml
实现了它自己的解析器,并使uses-material-design: true
等设置在运行时可用?
Is pubspec.yaml designed to be used to provide configuration flags or only dependencies?
从历史上看,它还包含纯 Dart 项目中的构建设置。例如编译为 JS 的设置,但已移出 build.yaml
。参见 https://github.com/dart-lang/build/blob/master/build_config/README.md
Does the way flutter use
pubspec.yaml
idiomatic Dart or unique?
这是 Flutter 独有的。
Does Flutter implement it's own parser for pubspec.yaml and make settings like
uses-material-design: true
available at runtime?
是的。
不过这些设置是构建时设置,而不是运行时设置。
实际上我觉得很不幸,这个文件混淆了不同的用途。在早期的 Flutter 时代,Flutter 特定的设置在不同的文件中,但这也造成了一些困难(不知道细节 - 只在 GitHub 讨论中看到它)所以他们将它与 pubspec.yaml
合并.