文章目录

  • 一:问题描述
  • 二:属性详解
  • ①:name
  • ②:description
  • ③:version
  • ④:environment
  • ⑤:dependencies
  • ⑥:dev_dependencies


一:问题描述

在 Flutter 中,pubspec.yaml 是项目的核心配置文件,你可以把它想成 Android 项目中的 build.gradle 配置文件。

这里我新建一个 Flutter 项目,打开 pubspec.yaml 文件去掉注释后,如下图所示

flutter android 目录_ci

默认项目中的属性有 8 个(其实还有其它的属性),接下来分别对属性做下说明。

二:属性详解

①:name

项目的包名。

举例说明一:

在一个文件引入另外一个文件时会用到,如下图所示

flutter android 目录_Dart_02

如果你更改了 name 属性后面的内容,则相应的在所有引用包名的地方都会被修改。

举例说明二:

我们在 pub.dev 上使用 Flutter 插件,会根据名称去找自己需要的,如下图所示

flutter android 目录_Flutter配置文件说明_03

这个 url_launcher 就是作者写插件时项目中 name 属性对应的名称。当然如果你也想写一个 Flutter 插件发布到 pub.dev 上,那么 name 属性所对应的内容将作为标题显示。


②:description

当前项目的描述,是一个可选属性。

默认内容是 'none' ,这样可以防止你的项目发布到 pub.dev 上,反之,如果你希望发布到 pub.dev 上,则需要删除此属性。

我们在 pub.dev 上看到的插件下方的内容,如下图所示

flutter android 目录_pubspec.yaml_04

对应的就是 description 属性后面的内容。


③:version

程序的版本和内部版本号,格式是 x.x.x+x,如 1.0.0+1,也称为语义版本号(semantic versioning)。

再细分的话,+ 号前面的叫 version number,+ 号后面的叫 build number。

对应 Android 项目中的 android - app - build.gradle 文件中的 android - defaultConfig 的 versionCode 和 versionName,

如下图所示

flutter android 目录_Flutter配置文件说明_05


④:environment

指定项目中 Flutter 和 Dart 的版本控制,如下图所示

flutter android 目录_pubspec.yaml_06

其中,属性 sdk 是声明该项目是基于 Dart 的 SDK 哪个版本进行编译。

sdk: ">=2.12.0 <3.0.0" 说明当前项目仅适用于大于等于 Dart SDK 2.12.0 到小于 3.0.0 的编译。

因为 Dart 的空安全是从 2.12.0 版本开始的,所以如果你用不是空安全的写法就会报错,如果你想向下兼容的话,最低版本写 2.12.0 之前的就行了。


⑤:dependencies

生产环境中项目的第三方插件依赖,dependencies 下的所有依赖都会编译到项目中。

⑥:dev_dependencies

开发环境中的依赖库版本。

你的问题得到解决了吗?欢迎在评论区留言。