关于dart:dart系列之元世界pubspecyaml文件详解

简介

pubspec.yaml是所有dart我的项目的灵魂,它蕴含了所有dart我的项目的依赖信息和其余元信息,所以pubspec.yaml就是dart我的项目的meta!

pubspec.yaml反对的字段

依据dart的定义,pubspec.yaml中能够蕴含上面的字段:

字段名 是否必须字段 形容
name package的名字
version 如果公布到pub.dev,则须要 package的版本号
description 如果公布到pub.dev,则须要 package的形容信息
homepage package的主页
repository package的源代码地址
issue_tracker package问题跟踪地址
documentation package的文档信息
dependencies package的依赖信息
dev_dependencies pacakge的dev依赖信息
dependency_overrides 想要笼罩的package
environment dart2须要
executables package的可执行文件门路
publish_to package将如何公布

留神,以上是dart中pubspec.yaml反对的字段,如果是在flutter环境中,则会有些额定反对的字段。

# 一个例子

咱们看一个具体的例子:

 name: my_app
version: 11.15
description: >-
  this is a new app
homepage: http://www.flydean.com
documentation: http://www.flydean.com
environment:
  sdk: '>=2.10.0 <3.0.0'
dependencies:
  efts: ^2.0.4
  transmogrify: ^0.4.0
dev_dependencies:
  test: '>=1.15.0 <2.0.0'

字段详情

上面来看下各个字段的详情和限度状况:

  1. Name

name示意的是包的名字,name必须是全小写,如果有多个词的话,能够用下划线来辨别,如:my_app.

并且只能应用小写字母和数字的组合,同时不能以数字结尾,并且不要应用dart中的保留字。

  1. Version

Version示意的是版本号,版本号是由点宰割的三个数字,如:11.15.0. 前面还能够跟上build版本号:+1, +2, +hotfix.oopsie, 或者预公布版本等:-dev.4, -alpha.12, -beta.7, -rc.5.

  1. Description

package的形容信息最好应用英文来刻画,长度是60 到180个字符,示意这个包的作用。

  1. Dependencies

有两种依赖信息,一种是所有应用到这个packages的人都须要用到的依赖,这种依赖放在dependencies中。

还有一种是只用在以后pacakge开发中的包,这种依赖放在dev_dependencies中。

在某些状况下,咱们有可能须要笼罩某些依赖包,则能够放在:dependency_overrides中。

  1. Executables

有些pacakges提供的是工具供大家应用,这些工具有可能是命令行工具,所以须要在executables中指定能够执行的命令的门路。

比方上面的配置:

executables:
  slidy: main
  fvm:

那么在执行pub global activate之后,就能够在全局执行slidy来执行bin/main.dart, 和fvm来执行binfvm.dart.

  1. environment

因为Dart是一门新的语言,所以目前来说其变动还是挺大的。所以有些利用能够依赖于不同的dart版本,这时候就须要用到environment:

environment:
  sdk: '>=2.10.0 <3.0.0'

下面的代码中,咱们指定了dart sdk的版本范畴。

从dart1.19之后,environment:中还反对指定flutter的版本:

environment:
  sdk: '>=1.19.0 <3.0.0'
  flutter: ^0.1.2

总结

以上就是dart的元世界pubspec.yaml详解。

本文已收录于 http://www.flydean.com/10-dart-pubspec/

最艰深的解读,最粗浅的干货,最简洁的教程,泛滥你不晓得的小技巧等你来发现!

欢送关注我的公众号:「程序那些事」,懂技术,更懂你!

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理