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

时间:2019-04-19 22:36:03

标签: dart flutter dart-pub flutter-dependencies

我正在学习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是用于提供配置标志还是仅提供依赖项?
  • 扑打的方式是使用pubspec.yaml惯用的Dart还是唯一的?
  • pubspec.yaml是仅由pub工具解析还是在运行时解析为通用应用程序配置文件?
  • Flutter是否为pubspec.yaml实现了自己的解析器,并使uses-material-design: true之类的设置在运行时可用?

1 个答案:

答案 0 :(得分:4)

  

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合并。