简介
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+1
environment:
sdk: ">=2.7.0 <3.0.0"
dependencies:
image_picker: ^0.6.7+22
video_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/
最艰深的解读,最粗浅的干货,最简洁的教程,泛滥你不晓得的小技巧等你来发现!
欢送关注我的公众号:「程序那些事」, 懂技术,更懂你!