关于dart:dart系列之在dart中使用packages

59次阅读

共计 2021 个字符,预计需要花费 6 分钟才能阅读完成。

简介

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/

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

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

正文完
 0