dart pub în Dart

Comanda dart Dart 2.10 (pub add/remove din Dart 2.13)

Managerul de pachete Dart: adaugă, descarcă și actualizează dependențele de pe pub.dev.

Sintaxă
dart pub get                 # descarcă dependențele din pubspec.yaml
dart pub add pachet         # adaugă o dependență
dart pub add dev:test        # dependență doar pentru dezvoltare
dart pub remove pachet
dart pub upgrade             # trece la cele mai noi versiuni permise
dart pub outdated            # arată ce versiuni noi există
dart pub publish             # publică pe pub.dev

Ce face dart pub

Dependențele unui proiect sunt scrise în pubspec.yaml. dart pub add intl caută ultima versiune a pachetului pe pub.dev, o adaugă în pubspec.yaml (ex. intl: ^0.20.3) și o descarcă. Cu prefixul dev: pachetul ajunge la dev_dependencies (unelte folosite doar la dezvoltare, ca test).

dart pub get descarcă versiunile fixate în pubspec.lock (sau le alege, dacă fișierul lipsește). dart pub upgrade trece la cele mai noi versiuni permise de constrângeri (^0.20.3 înseamnă „0.20.3 sau mai nou, dar sub 0.21.0”) și actualizează pubspec.lock.

dart pub outdated arată ce dependențe au versiuni noi, iar dart pub publish publică propriul pachet pe pub.dev. Pachetele descărcate stau într-un cache comun, nu în proiect.

Parametri

Parametru Descriere
get Descarcă dependențele.
add / remove Adaugă sau șterge o dependență din pubspec.yaml și o descarcă.
upgrade Actualizează la cele mai noi versiuni compatibile; --major-versions schimbă și constrângerile.
outdated Afișează versiunile curente, compatibile și cele mai noi.

Exemple

Exemplul 1: Adăugarea unei dependențe

intl are nevoie de pachetul clock, care este adăugat automat (ca dependență indirectă).

dart pub add intl

Rezultat în terminal

Resolving dependencies...
Downloading packages...
+ clock 1.1.3
+ intl 0.20.3
Changed 2 dependencies!

Exemplul 2: pubspec.yaml după adăugare

Dependențele sunt sortate alfabetic; ^ permite actualizări compatibile.

dart pub add http
sed -n '/dependencies:/,$p' pubspec.yaml

Rezultat în terminal

Resolving dependencies...
Downloading packages...
+ http 1.6.0
Changed 1 dependency!
dependencies:
  http: ^1.6.0
  intl: ^0.20.3
  path: ^1.9.0

dev_dependencies:
  lints: ^6.0.0
  test: ^1.25.6

Exemplul 3: Ștergere și verificare

remove scoate pachetul, iar outdated confirmă că restul sunt la zi.

dart pub remove http
dart pub outdated

Rezultat în terminal

Resolving dependencies...
Downloading packages...
These packages are no longer being depended on:
- http 1.6.0
Changed 1 dependency!
Showing outdated packages.
[*] indicates versions that are not the latest available.

Found no outdated packages

Greșeli frecvente

  • Editarea lui pubspec.yaml fără dart pub get: importul pachetului nou dă Target of URI doesn't exist până la descărcare.
  • Ștergerea lui pubspec.lock într-o aplicație: pierzi versiunile exacte testate. Păstrează-l în Git pentru aplicații (pentru pachete publicate nu este necesar).
  • dart pub add fără internet: comanda nu poate rezolva versiunile; doar dart pub get --offline folosește ce este deja în cache.

Comenzi înrudite

  • dart create: Creează un proiect Dart nou dintr-un șablon: aplicație de consolă, pachet, server sau aplicație web.
  • import: Face disponibile în fișierul curent numele publice ale altei biblioteci: din SDK, dintr-un pachet sau din proiect.
  • dart run: Rulează un program Dart: un fișier, programul principal al proiectului sau un executabil dintr-un pachet.