简介

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: app2description: a demo appversion: 1.0.0+1environment:  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/

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

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