Saltar al contenido principal

dart pub upgrade

Usa dart pub upgrade para obtener las últimas versiones de todas las dependencias utilizadas por tu aplicación Dart.

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

$ dart pub upgrade [options] [dependencies]

Al igual que dart pub get, dart pub upgrade obtiene las dependencias. La diferencia es que dart pub upgrade ignora cualquier archivo de bloqueo (lockfile)LockfileUn archivo llamado pubspec.lock que especifica las versiones de cada dependencia. Obtén más información existente, para que pub pueda obtener las últimas versiones de todas las dependencias. Un comando relacionado es dart pub outdated, el cual puedes ejecutar para encontrar dependencias desactualizadas.

Sin ningún argumento adicional, dart pub upgrade obtiene las últimas versiones de 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 upgrade
Dependencies upgraded!

Cuando dart pub upgrade actualiza las versiones de las dependencias, escribe un archivo de bloqueo para asegurar que dart pub get utilizará las mismas versiones de esas dependencias. Para 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, registra el archivo de bloqueo en el control de versiones; esto asegura que la aplicación tenga exactamente las mismas versiones de todas las dependencias para todos los desarrolladores y al desplegarse en producción. Para paquetes normales, no registres el archivo de bloqueo, porque se espera que los paquetes funcionen con un rango de versiones de dependencias.

Si ya existe un archivo de bloqueo, dart pub upgrade lo ignora y genera uno nuevo desde cero, utilizando las últimas versiones de todas las dependencias.

Consulta la documentación de dart pub get para obtener más información sobre la resolución de paquetes y la caché de paquetes del sistema.

Actualizar dependencias específicas

#

Puedes indicarle a dart pub upgrade que actualice dependencias específicas a la última versión, dejando el resto de las dependencias sin cambios en la medida de lo posible. Por ejemplo:

dart pub upgrade test args
Dependencies upgraded!

Normalmente, no se actualizan otras dependencias; permanecen en las versiones que están bloqueadas en el archivo de bloqueo. Sin embargo, si las actualizaciones solicitadas causan incompatibilidades con estas versiones bloqueadas, se desbloquean selectivamente hasta encontrar un conjunto compatible de versiones.

Esto significa que actualizar una dependencia específica no actualiza por defecto sus dependencias transitivas.

Para actualizar una dependencia específica y todas sus dependencias transitivas a sus últimas versiones, utiliza la flag --unlock-transitive.

dart pub upgrade --unlock-transitive test args

Obtener una nueva dependencia

#

Si se añade una dependencia al pubspec antes de ejecutar dart pub upgrade, esta obtiene la nueva dependencia y cualquiera de sus dependencias transitivas. Esto comparte el mismo comportamiento que dart pub get.

Eliminar una dependencia

#

Si se elimina una dependencia del pubspec antes de ejecutar dart pub upgrade, 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. Este es el mismo comportamiento que dart pub get.

Actualizar estando sin conexión (offline)

#

Si no tienes acceso a la red, aún puedes ejecutar dart pub upgrade. 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 upgrade 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 upgrade bloquea tu aplicación en esa versión antigua. La próxima vez que estés conectado, probablemente querrás ejecutar dart pub upgrade de nuevo para actualizar a una versión posterior.

Opciones

#

El comando dart pub upgrade admite las opciones de dart pub get, entre otras. 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 actualiza las dependencias del directorio example/ del paquete (--example). Para omitir la actualización de dependencias de ejemplo, utiliza --no-example.

--major-versions

#

Obtiene los paquetes que dart pub outdated lista como resolubles (resolvable), ignorando cualquier restricción de límite superior (upper-bound) en el archivo pubspec.yaml. También actualiza pubspec.yaml con las nuevas restricciones.

Para verificar qué dependencias se actualizarán, puedes usar dart pub upgrade --major-versions --dry-run.

--tighten

#

Actualiza los límites inferiores (lower bounds) de las dependencias en pubspec.yaml para que coincidan con las versiones resueltas, y devuelve una lista de las restricciones modificadas. Se puede aplicar a dependencias específicas.

--unlock-transitive

#

Cuando se utiliza con una lista de paquetes para desbloquear, primero se calcula la clausura transitiva de las dependencias de esos paquetes (en la resolución actual), y luego se desbloquean todos esos paquetes.

En un espacio de trabajo (workspace)

#

En un espacio de trabajo de Pub (Pub workspace), dart pub upgrade actualizará todas las dependencias en la resolución compartida de todos los paquetes del espacio de trabajo.

Los comandos dart pub upgrade --major-versions y dart pub upgrade --tighten actualizarán las restricciones en todos los archivos pubspec.yaml del espacio de trabajo.