dart系列之:在dart中使用packages
文章目录
- 简介
- pubspec.yaml
- get packages
- 使用packages
- 升级依赖
- 总结
简介
java中使用jar包来封装有用的功能,然后将其分发到maven仓库中,供其他人使用。同样的在dart中也有类似的概念叫做packages。packages就是可以用来共享的软件包,可以包含libraries和tools。
你可以在pub.dev网站中查到dart中所有的共享packages的信息。 那么怎么在一个dart项目中使用这些packages呢?
pubspec.yaml
简单点讲,一个dart的package就是包含pubspec.yaml的目录。pubspec.yaml是一个描述文件,用来表明该package的元信息,包括当前package的名字,版本号和依赖信息等。
要想使用pub.dev上的packages,只需要在pubspec.yaml引入对应的依赖即可。
我们举个例子:
name: app2
description: a demo app
version: 1.0.0+1environment:sdk: ">=2.7.0 <3.0.0"dependencies:image_picker: ^0.6.7+22video_player: ^0.10.12+5
这里我们的引入了两个依赖包,分别是image_picker和video_player。
get packages
当我们修改了pubspec.yaml之后,其实对应的package并没有下载到本地来,还需要通过下面的命令来下载对应的packages:
cd <path-to-my_app>dart pub get
dart pub get会根据pubspec.yaml中配置的内容下载对应的包,并放置在系统缓存中。
在Mac或者Linux系统中,这个缓存目录的地址是:~/.pub-cache,在windows中这个目录地址是:%LOCALAPPDATA%\Pub\Cache。
当然,你也可以通过设置PUB_CACHE来更换这个地址。
如果你依赖的包又依赖其他的包的话,其他依赖包也会被下载下来。
当下载完依赖包之后,dart会在 .dart_tool/目录中创建一个 package_config.json文件,用来表示当前项目和系统缓存包的映射关系。
使用packages
万事俱备,只欠东风。现在包也有了,剩下就是使用了。
使用libary可以用关键字import。如果是dart SDK中的包,则以dart:开头:
import 'dart:html';
如果是第三方包,则以package: 开头:
import 'package:test/test.dart';
引入的libary还可以被重命名:
import 'package:lib1/lib1.dart';
import 'package:lib2/lib2.dart' as lib2;// Uses Element from lib1.
Element element1 = Element();// Uses Element from lib2.
lib2.Element element2 = lib2.Element();
还可以使用show和hide引入部分library:
// Import only foo.
import 'package:lib1/lib1.dart' show foo;// Import all names EXCEPT foo.
import 'package:lib2/lib2.dart' hide foo;
默认情况下,引入的包是初始加载的,如果某些包特别大,或者你想要在使用的时候再进行加载,则可以使用deferred关键字进行延时加载:
import 'package:greetings/hello.dart' deferred as hello;
在使用的时候,需要显示调用loadLibrary() 方法,来加载对应的library:
Future<void> greet() async {await hello.loadLibrary();hello.printGreeting();
}
升级依赖
在第一次运行dart pub get 之后,dart会创建一个pubspec.lock文件,用来锁定依赖包的版本号,如果是在团队协作中,这个lock文件是特别有用的,它可以保证团队中所有成员使用的都是同一个版本的依赖包。
当你想升级对应的依赖的时候,可以使用dart pub upgrade命令,对依赖包进行升级。
dart pub upgrade会根据最新的可用包来生成最新的lock文件。
当然,你也可以指定升级某个特定的依赖包:
dart pub upgrade image_picker
要想查看最新依赖包的最新版本,可以使用:
dart pub outdated
总结
以上就是dart中packages的使用。
本文已收录于 http://www.flydean.com/09-dart-packages/
最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧等你来发现!
欢迎关注我的公众号:「程序那些事」,懂技术,更懂你!
dart系列之:在dart中使用packages相关推荐
- dart系列之:在dart中使用数字和字符串
文章目录 简介 数字 字符串 StringBuffer 总结 简介 要想熟悉一种语言,最简单的做法就是熟悉dart提供的各种核心库.dart为我们提供了包括dart:core,dart:async,d ...
- dart系列之:在dart中使用生成器
文章目录 简介 两种返回类型的generator Stream的操作 总结 简介 ES6中在引入异步编程的同时,也引入了Generators,通过yield关键词来生成对应的数据.同样的dart也有y ...
- dart系列之:dart语言中的特殊操作符
dart系列之:dart语言中的特殊操作符 文章目录 简介 普通操作符 类型测试操作符 条件运算符 级联符号 类中的自定义操作符 总结 简介 有运算就有操作符,dart中除了普通的算术运算的操作符之外 ...
- dart系列之:浏览器中的舞者,用dart发送HTTP请求
文章目录 简介 发送GET请求 发送post请求 更加通用的操作 总结 简介 dart:html包为dart提供了构建浏览器客户端的一些必须的组件,之前我们提到了HTML和DOM的操作,除了这些之外, ...
- dart系列之:dart代码规范实践指南
文章目录 简介 命名规则 import中的顺序 格式化 总结 简介 每种语言都有自己的代码风格,这种代码风格是跟语言特性息息相关的.如果在编码的过程中遵循这种统一的编码规则,会给我们的业务带来非常多的 ...
- dart系列之:手写Library,Library编写实践
文章目录 简介 使用part和part of src中的文件 package中的lib文件 总结 简介 Library是dart用来组织代码的一种非常有用的方式,通过定义不同的Library,可以将非 ...
- dart系列之:你的地盘你做主,使用Extension对类进行扩展
文章目录 简介 dart中extension的使用 API冲突 extention的实现 总结 简介 一般情况要扩展一个类,需要继承这个类,这是在大多数java或者其他面向对象语言中要做的事情. 但是 ...
- dart系列之:HTML的专属领域,除了javascript之外,dart也可以
文章目录 简介 DOM操作 CSS操作 处理事件 总结 简介 虽然dart可以同时用作客户端和服务器端,但是基本上dart还是用做flutter开发的基本语言而使用的.除了andorid和ios之外, ...
- dart系列之:创建Library package
文章目录 简介 Library package的结构 导入library 条件导入和导出library 添加其他有效的文件 library的文档 发布到pub.dev 总结 简介 在dart系统中,有 ...
最新文章
- 507. Perfect Number(Python)
- C语言经典算法 11-20
- 2021常用单细胞数据库整理汇总
- Page directive: illegal to have multiple occurrences of contentType with different values
- C++总结篇(1)命名空间及引用
- 嘉年华专访 | 国际上智能运维研究
- POJ 1639 Picnic Planning:最小度限制生成树
- 迅捷cad_迅捷数组
- Grunt-jsdoc生成JS API文档
- visio图形包解压
- mouse是计算机软件吗,手机控制电脑软件(EasyMouse)手机端
- iOS小知识:nib本地化、图片本地化字符串本地化(APP 内的本地化切换)
- CCF关于举办2019年NOI教师培训(首师附中)的通知
- 洛谷算法题单:模拟与高精度例题(上)
- 往word表中写数据
- 大雄宝殿的“大雄”是什么意思
- 电脑无法安装软件打不开计算机,电脑刚安装软件打不开怎么办
- 一场美好的婚礼对女孩子来说意味着什么?
- 深入浅出FPGA-4-数字电路设计基础
- 微信公众平台测试号申请