dart系列之:元世界pubspec.yaml文件详解
简介
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'
字段详情
下面来看下各个字段的详情和限制情况:
- Name
name表示的是包的名字,name必须是全小写,如果有多个词的话,可以用下划线来区分,如:my_app.
并且只能使用小写字母和数字的组合,同时不能以数字开头,并且不要使用dart中的保留字。
- Version
Version表示的是版本号,版本号是由点分割的三个数字,如:11.15.0. 后面还可以跟上build版本号:+1, +2, +hotfix.oopsie, 或者预发布版本等:-dev.4, -alpha.12, -beta.7, -rc.5.
- Description
package的描述信息最好使用英文来描写,长度是60 到180个字符,表示这个包的作用。
- Dependencies
有两种依赖信息,一种是所有使用到这个packages的人都需要用到的依赖,这种依赖放在dependencies中。
还有一种是只用在当前pacakge开发中的包,这种依赖放在dev_dependencies中。
在某些情况下,我们有可能需要覆盖某些依赖包,则可以放在:dependency_overrides中。
- Executables
有些pacakges提供的是工具供大家使用,这些工具有可能是命令行工具,所以需要在executables中指定可以执行的命令的路径。
比如下面的配置:
executables:
slidy: main
fvm:
那么在执行pub global activate之后,就可以在全局执行slidy来执行bin/main.dart, 和fvm来执行binfvm.dart.
- 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文件详解的更多相关文章
- [Kubernetes]yaml文件详解
应前一段时间夸下的海口:[Kubernetes]如何使用yaml文件使得可以向外暴露服务,说过要写一篇关于yaml文件详解的文章出来的,今天来总结一下.yaml文件用在很多地方,但是这里以介绍在Kub ...
- k8s之yaml文件详解
k8s之yaml文件详解 目录 k8s之yaml文件详解 1. k8s支持的文件格式 2. YAML语言格式 3. 查看api资源版本标签 4. 编写nginx-test.yaml资源配置清单 4.1 ...
- 【Flutter 实战】pubspec.yaml 配置文件详解
老孟导读:pubspec.yaml 文件是 Flutter 中非常重要的配置文件,下面就让我们看看里面各个配置的含义. pubspec.yaml 是 Flutter 项目的配置文件,类似于 Andro ...
- K8s创建pod yaml文件详解
kubernetes创建pod的yaml文件,参数说明 apiVersion: v1 #指定api版本,此值必须在kubectl apiversion中 kind: Pod #指定创建资源的角色/类型 ...
- 6.YAML文件详解、PyYaml操作
YAML简介: yaml是一种数据格式,支持注释,换行,多行字符串,裸字符串(正序,字符串) YAML作用: 用于全局的配置文件 用于测试用例编写 YAML语法规则: 区分大小写 使用缩进 ...
- k8s yaml文件详解
1.yaml格式的Pod配置文件内容及注解 深入Pod之前,首先我们来了解下Pod的yaml整体文件内容及功能注解. 如下: # yaml格式的pod定义文件完整内容: apiVersion: v1 ...
- Kubernetes (yaml 文件详解)
# yaml格式的pod定义文件完整内容:apiVersion: v1 #必选,版本号,例如v1kind: Pod #必选,Podmetadata: #必选,元数据 ...
- 第14章 启动文件详解—零死角玩转STM32-F429系列
第14章 启动文件详解 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege ...
- web.xml文件详解
web.xml文件详解 Table of Contents 1 listener. filter.servlet 加载顺序 2 web.xml文件详解 3 相应元素配置 1 listener. f ...
随机推荐
- Snipaste屏幕截图的使用
什么是Snipaste Snipaste是一款屏幕截图软件 类似于微信的截图 Snipaste使用步骤 百度搜索Snipaste 如图 点击 根据自己电脑系统选择安装 下载完成后 解压到当前文件夹 点 ...
- 题解 「BJOI2018 治疗之雨」
题目传送门 题目大意 有一个初始为 \(p\) 的数,每次操作分为以下两个: 有 \(\frac{1}{m+1}\) 的概率$+1,但是中途 \(p\) 的最大值只能为 \(n\)$ 有 \(k\) ...
- HTML5元素背景知识
目录 HTML5元素背景知识 语义与呈现分离 元素选用原则 少亦可为多 别误用元素 具体为佳,一以贯之 对用户不要想当然 元素说明体例 ol元素 元素速览 文档和元数据元素 文档和元数据元素 文本元素 ...
- hadoop学习笔记:运行wordcount对文件字符串进行统计案例
文/朱季谦 我最近使用四台Centos虚拟机搭建了一套分布式hadoop环境,简单模拟了线上上的hadoop真实分布式集群,主要用于业余学习大数据相关体系. 其中,一台服务器作为NameNode,一台 ...
- Go语言核心36讲(Go语言进阶技术四)--学习笔记
10 | 通道的基本操作 作为 Go 语言最有特色的数据类型,通道(channel)完全可以与 goroutine(也可称为 go 程)并驾齐驱,共同代表 Go 语言独有的并发编程模式和编程哲学. D ...
- 全场景效能平台猪齿鱼常用的前端css实现方案
居中 最常用的height + line-height,以及margin:0 auto的居中方式就不再阐述,以下介绍两种容错性高的实现方案. flex布局实现 猪齿鱼前端日常开发中,我们多以f ...
- 【c++ Prime 学习笔记】第1章 开始
1.1 编写一个简单的程序 int main() { return 0; } 函数 包含4部分: 返回类型(return type) 函数名(function name) 形参列表(parameter ...
- Linux服务器装Anaconda&TensorFlow
远程Linux服务器装Anaconda&指定版本TensorFlow 说明: 由于疫情影响,原先使用的服务器已断电,故重选了一台服务器对环境重选进行搭建,正好补上这篇博文. 01 下载Anac ...
- Noip模拟80 2021.10.18
预计得分:5 实际得分:140?????????????? T1 邻面合并 我考场上没切掉的大水题....(证明我旁边的cty切掉了,并觉得很水) 然而贪心拿了六十,离谱,成功做到上一篇博客说的有勇气 ...
- Noip模拟73 2021.10.10
老妈送来了防寒补给就很棒,再也不用晚上盖两层毛巾被了,再也不用担心晚上自动把毛巾被$split$了 还有一些好吃的耶叶 T1 小L的疑惑 考场上疑惑的切掉了 直接把$a$排序然后处理前缀和的过程中判断 ...