写点什么

dart 系列之: 在 dart 中使用 packages

作者:程序那些事
  • 2021 年 11 月 17 日
  • 本文字数:1470 字

    阅读完需:约 5 分钟

dart系列之:在dart中使用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: app2description: a demo appversion: 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/

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

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

发布于: 1 小时前阅读数: 4
用户头像

关注公众号:程序那些事,更多精彩等着你! 2020.06.07 加入

最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧,尽在公众号:程序那些事!

评论

发布
暂无评论
dart系列之:在dart中使用packages