Saltar al contenido principal

dart pub get

Usa dart pub get para recuperar las dependencias utilizadas por tu aplicación Dart.

Get es uno de los comandos de la herramienta pub (pub tool).

$ dart pub get [options]

Este comando obtiene todas las dependencias listadas en el archivo pubspec.yaml en el directorio de trabajo actual, así como sus dependencias transitivasDependencia transitivaUna dependencia que un paquete utiliza indirectamente porque una de sus dependencias la requiere. Obtén más información. Por ejemplo:

dart pub get
Resolving dependencies...
Got dependencies!

Si la caché del sistemaCaché del sistema de PubUn directorio donde pub almacena los paquetes remotos descargados. Obtén más información no contiene ya las dependencias, dart pub get actualiza la caché, descargando las dependencias si es necesario. Para mapear los paquetes de vuelta a la caché del sistema, este comando crea un archivo package_config.json en el directorio .dart_tool/.

Una vez adquiridas las dependencias, estas pueden ser referenciadas en el código Dart. Por ejemplo, si un paquete depende de test:

dart
import 'package:test/test.dart';

Cuando dart pub get obtiene nuevas dependencias, escribe un archivo de bloqueo (lockfile)LockfileUn archivo llamado pubspec.lock que especifica las versiones de cada dependencia. Obtén más información para asegurar que las futuras obtenciones utilicen las mismas versiones de esas dependencias. Los paquetes de aplicación (application packages)Paquete de aplicaciónUn paquete Dart que contiene una aplicación ejecutable. Obtén más información deberían registrar el archivo de bloqueo en el control de versiones; esto asegura que la aplicación utilizará exactamente las mismas versiones de todas las dependencias para todos los desarrolladores y cuando se despliegue en producción. Sin embargo, los paquetes normales no deberían registrar el archivo de bloqueo, ya que se espera que funcionen con un rango de versiones de dependencias.

Si ya existe un archivo de bloqueo, dart pub get utiliza las versiones de dependencias bloqueadas en él si es posible. Si una dependencia no está bloqueada, pub obtiene la última versión de esa dependencia que satisfaga todas las restricciones de versiónRestricción de versiónUna restricción asociada a cada dependencia que especifica con qué versiones se espera que funcione un paquete. Obtén más información. Esta es la diferencia principal entre dart pub get y dart pub upgrade, el cual siempre intenta obtener las últimas versiones de todas las dependencias.

Resolución de paquetes

#

Por defecto, pub crea un archivo package_config.json en el directorio .dart_tool/ que mapea nombres de paquetes a URIs de ubicación.

Obtener una nueva dependencia

#

Si se añade una dependencia al pubspec y luego se ejecuta dart pub get, esta obtiene la nueva dependencia y cualquiera de sus dependencias transitivas. Sin embargo, pub no cambiará las versiones de ninguna dependencia ya adquirida a menos que sea necesario para obtener la nueva dependencia.

Eliminar una dependencia

#

Si se elimina una dependencia del pubspec y luego se ejecuta dart pub get, la dependencia ya no estará disponible para su importación. Cualquier dependencia transitiva de la dependencia eliminada también se elimina, siempre y cuando ninguna de las dependencias inmediatas restantes dependa también de ellas. La eliminación de una dependencia nunca cambia las versiones de ninguna dependencia ya adquirida.

La caché de paquetes del sistema

#

Las dependencias descargadas a través de internet, como las de Git y las del sitio pub.dev, se almacenan en una caché para todo el sistemaCaché del sistema de PubUn directorio donde pub almacena los paquetes remotos descargados. Obtén más información. Esto significa que si varios paquetes utilizan la misma versión de la misma dependencia, solo es necesario descargarla y almacenarla localmente una vez.

Por defecto, la caché de paquetes del sistema se encuentra en el subdirectorio .pub-cache de tu directorio personal (en macOS y Linux), o en %LOCALAPPDATA%\Pub\Cache (en Windows; la ubicación puede variar según la versión de Windows). Puedes configurar la ubicación de la caché configurando la variable de entorno PUB_CACHE antes de ejecutar pub.

Obtener estando sin conexión (offline)

#

Si no tienes acceso a la red, aún puedes ejecutar dart pub get. Debido a que pub descarga paquetes en una caché central compartida por todos los paquetes de tu sistema, a menudo puede encontrar paquetes descargados previamente sin necesidad de utilizar la red.

Sin embargo, por defecto, dart pub get intenta conectarse si tienes alguna dependencia alojada, para que pub pueda detectar versiones más nuevas de las dependencias. Si no deseas que pub haga eso, pásale la flag --offline. En modo sin conexión (offline), pub busca únicamente en la caché local de paquetes, intentando encontrar un conjunto de versiones que funcionen con tu paquete a partir de lo que ya está disponible.

Ten en cuenta que pub genera un archivo de bloqueo. Si la única versión de alguna dependencia en tu caché resulta ser antigua, el comando offline dart pub get bloquea tu aplicación en esa versión antigua. La próxima vez que estés conectado, probablemente querrás ejecutar dart pub upgrade para actualizar a una versión posterior.

Opciones

#

Para conocer las opciones que se aplican a todos los comandos de pub, consulta Opciones globales.

--[no-]offline

#

Por defecto, pub se conecta a la red para recuperar paquetes alojados (--no-offline). Para usar paquetes almacenados en caché en su lugar, utiliza --offline. Para más detalles, consulta Obtener paquetes estando sin conexión (offline).

--dry-run o -n

#

Informa sobre las dependencias que cambiarían, pero no realiza los cambios. Esto es útil si deseas analizar las actualizaciones antes de realizarlas.

--[no-]precompile

#

Por defecto, pub precompila los ejecutables en las dependencias inmediatas (--precompile). Para evitar la precompilación, utiliza --no-precompile.

--[no-]example

#

Por defecto, pub también recupera las dependencias del directorio example/ del paquete (--example). Para omitir la recuperación de dependencias de ejemplo, utiliza --no-example.

--enforce-lockfile

#

Fuerza la resolución del pubspec.lock actual.

Hace que pub get falle con un mensaje de error si el pubspec.lock no especifica exactamente una resolución válida de pubspec.yaml o si ha cambiado el hash de contenido de algún paquete alojado.

Útil para CI o para desplegar a producción.

Consulta Obtener dependencias para producción para más detalles.