Contents

How to use packages

Dart生态系统使用软件包来管理共享软件,例如库和工具. 要获取Dart软件包,请使用pub软件包管理器 . 您可以在pub.dev站点上找到公共可用的软件包也可以从本地文件系统或其他地方(例如Git存储库)加载软件包. 无论您的软件包来自何处,pub都会管理版本依赖性,从而帮助您获得相互兼容的软件包版本以及与SDK版本兼容的软件包版本.

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

At a minimum, a Dart package is a directory containing a pubspec file. The pubspec contains some metadata about the package. Additionally, a package can contain dependencies (listed in the pubspec), Dart libraries, apps, resources, tests, images, and examples.

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

  • 创建一个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文件中查找.

您也可以使用此样式从自己的包中导入库. 考虑以下pubspec文件,该文件声明对(虚构的) transmogrify程序包的依赖关系:

name: my_app
dependencies:
  transmogrify:

假设您的包裹布局如下:

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

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

import '../../lib/parser.dart';

但这是一条相对脆弱的道路. 如果parser_test.dart曾经在目录中上移或下移,则该路径将中断. 相反,您可以执行以下操作:

import 'package:transmogrify/parser.dart';

这样,无论导入文件在哪里,导入都可以始终访问parser.dart .

Upgrading a dependency

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

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

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

$ pub upgrade

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

$ pub upgrade transmogrify

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

More information

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

How to

Reference

Pub commands

pub工具提供以下命令:

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

Troubleshooting

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

by  ICOPY.SITE