「这是我参与11月更文应战的第24天,活动概况查看:2021最后一次更文应战」
在Flutter
中有一个至关重要的文件,它便是pubspec.yaml
文件,它是Flutter
项目的装备文件;其效果类似于Node.js
中的package.json
,或许Android
中的Gradle
文件;
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
网站上,此特点将会作为标题显现,别人运用此插件时,引进也需求运用到此特点;
description
该特点是一个可选装备项,是对当前Flutter
工程项目的介绍,作为插件发布时,也会显现在pub.dev
上边,位置如下:
publish_to
此特点意为包发布到哪里去?
-
none
:表明此包不发布; - 也能够指定发布的服务器;依据注释能够看到,假如删去此项装备,那么默许发布到
pub.dev
version
此特点表明当前工程的版别,分为应用程序的版别
和内部版别号
,格局为x.x.x+x
,比方1.0.0+1
,称为语义版别号
;
-
+
号前面的叫做version number
; -
+
号后面的叫做build number
;
在Flutter
工程中的andioid/app
目录下的文件build.gradle
中有如下装备:
其中version number
对应versionName
;build number
对应versionCode
;
environment
此特点下能够装备Flutter
和Dart
版别,在咱们初始化项目之后,此特点下装备的sdk
是一个范围值,表明的是Dart
版别号,比方:
environment:
sdk: ">=2.12.0 <3.0.0"
表明,当前工程兼容版别号大于等于2.12.0
而且小于3.0.0
的Dart
版别的语法;
咱们也能够手动增加上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
:该装备只存在于插件项目中,用来装备适配的渠道,一般不要修正;如需增加新渠道,直接增加即可;
需求注意的是,此文件中的装备一定要特别注意格局与缩进,不然装备将或许无法生效;