简介

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/

最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧等你来发现!

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

dart系列之:元世界pubspec.yaml文件详解的更多相关文章

  1. [Kubernetes]yaml文件详解

    应前一段时间夸下的海口:[Kubernetes]如何使用yaml文件使得可以向外暴露服务,说过要写一篇关于yaml文件详解的文章出来的,今天来总结一下.yaml文件用在很多地方,但是这里以介绍在Kub ...

  2. k8s之yaml文件详解

    k8s之yaml文件详解 目录 k8s之yaml文件详解 1. k8s支持的文件格式 2. YAML语言格式 3. 查看api资源版本标签 4. 编写nginx-test.yaml资源配置清单 4.1 ...

  3. 【Flutter 实战】pubspec.yaml 配置文件详解

    老孟导读:pubspec.yaml 文件是 Flutter 中非常重要的配置文件,下面就让我们看看里面各个配置的含义. pubspec.yaml 是 Flutter 项目的配置文件,类似于 Andro ...

  4. K8s创建pod yaml文件详解

    kubernetes创建pod的yaml文件,参数说明 apiVersion: v1 #指定api版本,此值必须在kubectl apiversion中 kind: Pod #指定创建资源的角色/类型 ...

  5. 6.YAML文件详解、PyYaml操作

      YAML简介: yaml是一种数据格式,支持注释,换行,多行字符串,裸字符串(正序,字符串)   YAML作用: 用于全局的配置文件 用于测试用例编写   YAML语法规则: 区分大小写 使用缩进 ...

  6. k8s yaml文件详解

    1.yaml格式的Pod配置文件内容及注解 深入Pod之前,首先我们来了解下Pod的yaml整体文件内容及功能注解. 如下: # yaml格式的pod定义文件完整内容: apiVersion: v1 ...

  7. Kubernetes (yaml 文件详解)

    # yaml格式的pod定义文件完整内容:apiVersion: v1       #必选,版本号,例如v1kind: Pod       #必选,Podmetadata:       #必选,元数据 ...

  8. 第14章 启动文件详解—零死角玩转STM32-F429系列

    第14章     启动文件详解 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege ...

  9. web.xml文件详解

      web.xml文件详解 Table of Contents 1 listener. filter.servlet 加载顺序 2 web.xml文件详解 3 相应元素配置 1 listener. f ...

随机推荐

  1. FastAPI(59)- 详解使用 OAuth2PasswordBearer + JWT 认证

    JWT JSON Web Tokens 它是一个将 JSON 对象编码为密集且没有空格的长字符串的标准 使用 JWT token 和安全密码 hash 使应用程序真正安全 JWT 小栗子 eyJhbG ...

  2. Python标准库模块之heapq – 堆构造

    Python标准库模块之heapq – 堆构造 读前福利:几百本经典书籍https://www.johngo689.com/2158/ 原文链接:https://www.johngo689.com/2 ...

  3. 题解 CF762D Maximum path

    题目传送门 Description 给出一个 \(3\times n\) 的带权矩阵,选出一个 \((1,1)\to (3,n)\) 的路径使得路径上点权之和最大. \(n\le 10^5\) Sol ...

  4. 题解 [CTSC2006]歌唱王国

    题目传送门 Desctiption 见题面. Solution 人类智慧... 考虑这样一个赌博游戏,现在有一个猴子,它随机从 \(1\sim n\) 中选一个打出来.现在有若干个赌徒,他们一开始都有 ...

  5. js--typeof 和 instanceof 判断数据类型的区别及开发中的使用

    前言 日常的开发中,我们经常会遇到判断一个变量的数据类型或者该变量是否为空值的情况,你是如何去选择判断类型的操作符的?本文来总结记录一下我们开发人员必须掌握的关于 typeof 和 instanceo ...

  6. 网络协议之:加密传输中的NPN和ALPN

    目录 简介 SSL/TLS协议 NPN和ALPN 交互的例子 总结 简介 自从HTTP从1.1升级到了2,一切都变得不同了.虽然HTTP2没有强制说必须使用加密协议进行传输,但是业界的标准包括各大流行 ...

  7. 8.5(337)——树形dp

    将题目进行翻译,就是遍历二叉树算出最大权值,在遍历过程中,不能同时选择两个相连的节点. 第一种子问题的构造,是以爷爷--父亲--孙子的"三代"节点一同构造的,将最优子问题的结构定义 ...

  8. DOM的本质 和 方法

    <JavaScript DOM编程艺术> 读书笔记 一句话解释DOM: DOM,即我们所看到的网页,其在浏览器背后的文档结构(树状分支结构),涵盖了每一个节点(称之为对象).可以通过JS等 ...

  9. (二)、Docker 快速入门

    文档:https://docs.docker.com/install/linux/docker-ce/centos/ 中文文档:https://docs.docker-cn.com/engine/in ...

  10. 零基础入门必备的Linux命令和C语言基础

    文件和目录(底部有视频资料) cd /home 进入 '/ home' 目录' cd - 返回上一级目录 cd -/- 返回上两级目录 cd 进入个人的主目录 cd ~user1 进入个人的主目录 c ...