Contents

How to use packages

The Dart ecosystem uses packages to manage shared software such as libraries and tools. To get Dart packages, you use the 酒馆包经理. You can find publicly available packages on the pub.dev site, or you can load packages from the local file system or elsewhere, such as Git repositories. Wherever your packages come from, pub manages version dependencies, helping you get package versions that work with each other and with your SDK version.

大多数精通Dart的IDE都支持使用pub,包括创建,下载,更新和发布程序包. 或者,您可以在命令行上使用pub .

Dart包至少是一个包含pubspec文件的目录. pubspec包含有关软件包的一些元数据. 此外,程序包可以包含依赖项(在pubspec中列出),Dart库,应用程序,资源,测试,图像和示例.

要使用软件包,请执行以下操作:

  • 创建一个pubspec(一个名为pubspec.yaml的文件,该文件列出了程序包的依赖关系,并包含其他元数据,例如版本号).
  • 使用pub获取软件包的依赖关系.
  • 如果您的Dart代码依赖于程序包中的库,请导入该库.

Creating a pubspec

pubspec是一个名为pubspec.yaml的文件,位于应用程序的顶层目录中. 最简单的pubspec仅列出包名称:

name: my_app

这是一个pubspec的示例,它声明了对pub.dev站点上托管的两个软件包( jsintl )的依赖关系:

name: my_app
dependencies:
  js: ^0.6.0
  intl: ^0.15.8

有关创建pubspec的详细信息,请参见pubspec文档和要使用的软件包的文档.

Getting packages

拥有pubspec后,您可以从应用程序的顶级目录运行pub get

$ cd <path-to-my_app>
$ pub get

此过程称为获取依赖项 .

pub get命令确定您的应用程序所依赖的软件包,并将它们放在中央系统缓存中 . 如果您的应用程序依赖于已发布的程序包,则pub从pub.dev站点下载该程序包. 对于Git依赖项 ,pub克隆Git存储库. 还包括传递依赖项. 例如,如果js包依赖于test包,则pub同时获取js包和test包.

Pub将创建一个.packages文件(在您应用的顶层目录下),该文件将您应用所依赖的每个包名称映射到系统缓存中的相应包.

Importing libraries from packages

要导入包中找到的库,请使用package:前缀:

import 'package:js/js.dart' as js;
import 'package:intl/intl.dart';

Dart运行时将所有内容package:package:在您的应用程序的.packages文件中查找.

您也可以使用此样式从自己的包中导入库. 假设transmogrify软件包的布局如下:

transmogrify/
  lib/
    transmogrify.dart
    parser.dart
  test/
    parser/
      parser_test.dart

parser_test.dart文件可以这样导入parser.dart

import 'package:transmogrify/parser.dart';

Upgrading a dependency

第一次为软件包获取新的依赖项时,pub将下载与其他依赖项兼容的最新版本. 然后,它通过创建一个锁文件将您的软件包锁定为始终使用该版本. 这是一个名为pubspec.lock的文件,该文件由pub创建并存储在pubspec旁边. 它列出了程序包使用的每个依赖项(即时和传递)的特定版本.

如果您的软件包是应用程序软件包,则应将此文件检入源代码管理 . 这样,在您的应用程序上工作的每个人都使用所有软件包的相同版本. 检入锁定文件还可以确保您部署的应用程序使用相同版本的代码.

当您准备将依赖项升级到最新版本时,请使用pub upgrade命令:

$ pub upgrade

pub upgrade命令告诉pub使用软件包依赖关系的最新可用版本重新生成锁定文件. 如果只想升级一个依赖项,则可以指定要升级的软件包:

$ pub upgrade transmogrify

该命令将transmogrify升级到最新版本,但其他所有内容保持不变.

由于pubspec中版本冲突, pub upgrade命令不能总是将每个软件包都升级到最新版本. 要标识需要编辑pubspec的pub outdated软件包,请使用pub outdated .

More information

以下页面具有有关软件包和pub软件包管理器的更多信息.

How to

Reference

Pub commands

pub工具提供以下命令:

有关所有pub命令的概述,请参见pub工具文档 .

Troubleshooting

对pub进行故障排除可以解决使用pub时可能遇到的问题.

by  ICOPY.SITE