「这是我参与11月更文应战的第24天,活动概况查看:2021最后一次更文应战」

Flutter中有一个至关重要的文件,它便是pubspec.yaml文件,它是Flutter项目的装备文件;其效果类似于Node.js中的package.json,或许Android中的Gradle文件;

pubspec.yaml文件位置

咱们创立一个新的Flutter工程,其装备文件pubspec.yaml文件就位于根目录,如下图所示:

Flutter(二十六)-pubspec.yaml文件介绍

pubspec.yaml默许装备

在新工程中,pubspec.yaml中的默许装备,去掉注释部分,其装备内容如下:

name: flutter_demo
description: A new Flutter project.
publish_to: 'none' 
version: 1.0.0+1
environment:
  sdk: ">=2.12.0 <3.0.0"
dependencies:
  flutter:
    sdk: flutter
  cupertino_icons: ^1.0.2
dev_dependencies:
  flutter_test:
    sdk: flutter
  flutter_lints: ^1.0.0
flutter:
  uses-material-design: true

装备项介绍

name

此特点表明包名(package name),此特点在整个装备中扮演者极其重要的角色,引进其他我么你自己写的文件时,将会运用次报名,比方: 当name装备如下时:

name: flutter_demo

咱们在导入其他文件时,就需求运用如下方法:

import 'package:flutter_demo/listview_demo/listview_demo.dart';

假如咱们将name的装备修正如下:

name: flutter_app

那么,咱们在导入文件时,引进的import也要做相应的修正:

import 'package:flutter_app/listview_demo/listview_demo.dart';

需求注意的是,假如咱们开发了一个Flutter插件并对外发布,那么在pub.dev网站上,此特点将会作为标题显现,别人运用此插件时,引进也需求运用到此特点;

Flutter(二十六)-pubspec.yaml文件介绍

description

该特点是一个可选装备项,是对当前Flutter工程项目的介绍,作为插件发布时,也会显现在pub.dev上边,位置如下:

Flutter(二十六)-pubspec.yaml文件介绍

publish_to

此特点意为包发布到哪里去?

  • none:表明此包不发布;
  • 也能够指定发布的服务器;依据注释能够看到,假如删去此项装备,那么默许发布到pub.dev

version

此特点表明当前工程的版别,分为应用程序的版别内部版别号,格局为x.x.x+x,比方1.0.0+1,称为语义版别号

  • +号前面的叫做version number
  • +号后面的叫做build number

Flutter工程中的andioid/app目录下的文件build.gradle中有如下装备:

Flutter(二十六)-pubspec.yaml文件介绍

Flutter(二十六)-pubspec.yaml文件介绍

其中version number对应versionNamebuild number对应versionCode

environment

此特点下能够装备FlutterDart版别,在咱们初始化项目之后,此特点下装备的sdk是一个范围值,表明的是Dart版别号,比方:

environment:
  sdk: ">=2.12.0 <3.0.0"

表明,当前工程兼容版别号大于等于2.12.0而且小于3.0.0Dart版别的语法;

咱们也能够手动增加上Flutter的版别号,比方:

environment:
  sdk: ">=2.12.0 <3.0.0"
  flutter: "1.22.0"

dependencies

此特点下,一般增加咱们用到的第三方的sdk,默许装备如下:

dependencies:
  flutter:
    sdk: flutter
  cupertino_icons: ^1.0.2
  • sdk: flutter意为默许获取flutter的最新版别,也便是咱们机器上的flutter版别,咱们也能够在此处增加version来指定flutter的版别;
dependencies:
  flutter:
    sdk: flutter
    version: "2.5.3"
  • cupertino_icons:给应用程序增加Cupertino图标的,一般用于iOS;

咱们在之前的文章中,介绍过http发送网络请求的状况,咱们也是在此处装备的http,如下:

dependencies:
  flutter:
    sdk: flutter
  cupertino_icons: ^1.0.2
  http: ^0.13.4

关于这些第三方的版别号有以下几种写法:

  • 不指定/any:这个时分,默许加载最新的版别;但是一般咱们不引荐这样写,因为版别的变化或许会引起调用方法发生变化,导致项目编译出错;
  • x.y.z:清晰指定运用某一个版别号;
  • <=x.y.z/<x.y.z:运用小于或许小于等于某一个版别的包,这种方法,版别号需求加引号;
  • >=x.y.z <x.y.z:指定运用某一个区间的版别,这种方法,版别号需求加引号;
  • ^x.y.z:此种方法最为常见,也是比较引荐运用的方法。意为在大版别不变的状况下,运用最新的小版别;例如:^2.12.0相当于>=2.12.0 <3.0.0;

dev_dependencies

该装备项与dependencies的装备基本类似,都是装备应用程序所依靠的包;

不同的是,dependencies下装备的依靠包会被编译到项目中,而dev_dependencies装备的仅仅是运转期间的包;

flutter

此装备下一般是Flutter相关的装备;

uses-material-design: true

上边的默许装备意思是,确保咱们的应用程序中包括Material Icons字体,以使咱们能够运用material Icons类中的图标;

咱们当资源的装备也是在这个装备下进行设置:

  • assets:装备图片;
  • fonts:装备字体;
  • plugin:该装备只存在于插件项目中,用来装备适配的渠道,一般不要修正;如需增加新渠道,直接增加即可;

需求注意的是,此文件中的装备一定要特别注意格局与缩进,不然装备将或许无法生效;