pubspec.yaml中的配置标志如何工作?

ams*_*ams 7 dart dart-pub flutter flutter-dependencies

我正在学习Flutter和Dart。我注意到该pubspec.yaml文件似乎不仅包含第三方库的依赖版本。例如。

# The following section is specific to Flutter.
flutter:
  uses-material-design: true
Run Code Online (Sandbox Code Playgroud)

我了解Dart Pub工具定义了的格式,pubspec.yaml并且像Flutter这样的框架似乎可以pubspec.yaml通过额外设置来增强,提出了以下问题:

  • pubspec.yaml设计用来提供配置标志或只依赖呢?
  • 颤动方式是使用pubspec.yaml惯用的Dart还是独特的?
  • 难道pubspec.yaml只能由分析pub工具,或者它在运行时解析为一个通用的应用程序配置文件?
  • Flutter是否实现自己的解析器pubspec.yamluses-material-design: true在运行时提供可用的设置?

Gün*_*uer 5

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

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

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

它是Flutter独有的。

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

是。

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


实际上,我很遗憾该文件混合了不同的用途。在Flutter的早期,Flutter的特定设置位于不同的文件中,但这也造成了一些困难(不知道详细信息-仅在GitHub讨论中看到了它),因此将它们与合并pubspec.yaml