首页 > 解决方案 > 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通过额外的设置来增强它,从而引发以下问题:

标签: dartflutterdart-pubflutter-dependencies

解决方案


pubspec.yaml 是设计用于提供配置标志还是仅用于提供依赖项?

从历史上看,它还包含纯 Dart 项目中的构建设置。例如用于编译为 JS 的设置,但已移至build.yaml. 请参阅https://github.com/dart-lang/build/blob/master/build_config/README.md

Flutter 的方式是使用pubspec.yaml惯用的 Dart 还是独特的?

这是 Flutter 独有的。

Flutter 是否为 pubspec.yaml 实现了自己的解析器并uses-material-design: true在运行时提供类似的设置?

是的。

但是,这些设置是构建时设置,而不是运行时设置。


实际上,我发现这个文件混淆了不同的目的是相当不幸的。在 Flutter 早期,特定于 Flutter 的设置位于不同的文件中,但这也造成了一些困难(不知道细节 - 只在 GitHub 讨论中看到它),因此他们将其与pubspec.yaml.


推荐阅读