內容

如何使用套件

Dart 生態系統使用套件來管理共享軟體,例如函式庫和工具。若要取得 Dart 套件,請使用pub 套件管理員。您可以在 pub.dev 網站 上找到公開的套件,也可以從本機檔案系統或其他地方(例如 Git 存放庫)載入套件。無論套件來自何處,pub 都會管理版本相依性,協助您取得彼此相容且與您的 SDK 版本相容的套件版本。

大部分 支援 Dart 的 IDE 都提供使用 pub 的支援,包括建立、下載、更新和發布套件。或者,您可以在命令列上使用 dart pub

Dart 套件至少是一個包含 pubspec 檔案 的目錄。pubspec 包含一些關於套件的元資料。此外,套件可以包含依賴項(列在 pubspec 中)、Dart 函式庫、應用程式、資源、測試、影像和範例。

若要使用套件,請執行下列動作

  • 建立一個 pubspec(一個名為 pubspec.yaml 的檔案,列出套件依賴項,並包含其他元資料,例如版本號碼)。
  • 使用 dart pub get 來擷取套件的依賴項。
  • 如果您的 Dart 程式碼依賴套件中的函式庫,請匯入函式庫。

建立 pubspec

#

pubspec 是位於應用程式頂層目錄中的檔案,檔案名稱為 pubspec.yaml。最簡單的 pubspec 只列出套件名稱

yaml
name: my_app

以下是 pubspec 的範例,宣告依賴於兩個套件(jsintl),這些套件是由 pub.dev 網站所主機

yaml
name: my_app

dependencies:
  js: ^0.6.0
  intl: ^0.17.0

若要更新 pubspec.yaml 檔案,而不進行手動編輯,您可以執行 dart pub add 命令。以下範例新增對 vector_math 的依賴項。

$ dart pub add vector_math
Resolving dependencies... 
+ vector_math 2.1.3
Downloading vector_math 2.1.3...
Changed 1 dependency!

有關建立 pubspec 的詳細資訊,請參閱 pubspec 文件 和您想要使用的套件文件。

取得套件

#

一旦您有 pubspec,您可以從應用程式的頂層目錄執行 dart pub get

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

此程序稱為取得依賴項

dart pub get 指令會判斷應用程式依賴哪些套件,並將這些套件放入中央 系統快取 中。如果應用程式依賴已發佈的套件,pub 會從 pub.dev 網站 下載該套件。對於 Git 依賴項,pub 會複製 Git 儲存庫。傳遞依賴項也會包含在內。例如,如果 js 套件依賴 test 套件,pub 會同時取得 js 套件和 test 套件。

Pub 會建立一個 package_config.json 檔案(位於 .dart_tool/ 目錄下),將應用程式依賴的每個套件名稱對應到系統快取中的對應套件。

從套件匯入函式庫

#

若要匯入套件中找到的函式庫,請使用 package: 前綴

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

Dart 執行時期會取用 package: 之後的所有內容,並在應用程式的 package_config.json 檔案中查詢。

您也可以使用此樣式從自己的套件中匯入函式庫。假設 transmogrify 套件的配置如下

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

parser_test.dart 檔案可以像這樣匯入 parser.dart

dart
import 'package:transmogrify/parser.dart';

升級依賴項

#

當您第一次為套件取得新的依賴項時,pub 會下載與其他依賴項相容的最新版本。然後,它會鎖定套件,永遠使用該版本,方法是建立一個鎖定檔。這是一個名為 pubspec.lock 的檔案,由 pub 建立並儲存在 pubspec 旁邊。它會列出套件使用的每個依賴項(直接和傳遞)的特定版本。

如果您的套件是 應用程式套件,您應該將此檔案提交到 原始碼控管 中。這樣一來,所有處理應用程式的人員都會使用所有依賴項的相同版本。提交鎖定檔也可以確保已部署的應用程式使用相同版本的程式碼。

當您準備將依賴項升級到最新版本時,請使用 dart pub upgrade 指令

$ dart pub upgrade

dart pub upgrade 指令會指示 pub 重新產生鎖定檔,使用套件依賴項的最新可用版本。如果您只想升級一個依賴項,您可以指定要升級的套件

$ dart pub upgrade transmogrify

該指令會將 transmogrify 升級到最新版本,但保留其他所有內容不變。

dart pub upgrade 指令無法總是將每個套件升級到其最新版本,因為 pubspec 中有衝突的版本限制。若要找出需要編輯 pubspec 的過時套件,請使用 dart pub outdated

更多資訊

#

下列頁面包含有關套件和 pub 套件管理員的更多資訊。

如何

#

參考

#

Pub 子指令

#

dart pub 工具提供下列子指令

如需所有 dart pub 子指令的概觀,請參閱 pub 工具文件

排除問題

#

pub 疑難排解 提供您在使用 pub 時可能會遇到的問題解決方案。