dart pub outdated
Usa dart pub outdated para ayudarte a actualizar las dependencias de tu paquete.
Outdated es uno de los comandos de la herramienta pub (pub tool).
$ dart pub outdated [options]
Usa dart pub outdated para identificar dependencias de paquetes desactualizadas
y obtener consejos sobre cómo actualizarlas.
Las mejores prácticas para la gestión de dependencias
incluyen el uso de las versiones estables más recientes de los paquetes,
para que puedas obtener las últimas correcciones de errores y mejoras.
Descripción general
#Así es como puedes usar dart pub outdated para ayudarte a
actualizar las dependencias de un paquete de tu propiedad
(ya sea una aplicación o un paquete normal):
- Si tu paquete no tiene un archivo
pubspec.lockregistrado en el control de versiones, ejecutadart pub geten el directorio principal del paquete, el directorio que contiene el archivopubspec.yamlde tu paquete. - Ejecuta
dart pub outdatedpara identificar qué dependencias de paquetes están desactualizadas. Toma nota de los paquetes afectados, para que luego puedas probar el comportamiento del código que los utiliza. - Sigue las recomendaciones de
dart pub outdatedpara actualizar los paquetes. Algunas actualizaciones pueden requerir únicamente ejecutardart pub upgrade. Otras pueden requerir actualizarpubspec.yamlantes de ejecutardart pub upgrade. - Ejecuta
dart pub outdatedpara confirmar que estás utilizando las últimas versiones compatibles de los paquetes. - Prueba tu paquete para confirmar que sigue funcionando como se espera.
Es posible que sigas teniendo dependencias desactualizadas debido a
dependencias transitivasDependencia transitivaUna dependencia que un paquete utiliza indirectamente porque
una de sus dependencias la requiere. Obtén más información.
Si deseas determinar la causa,
intenta ejecutar dart pub deps y buscar en la salida el
nombre de cada paquete desactualizado.
Ejemplo
#Aquí tienes un ejemplo de la ejecución de dart pub outdated en
un ejemplo que tiene varias dependencias desactualizadas.
Tres de las dependencias (args, http y path) son directas,
y una es transitiva (meta).
Como muestra el siguiente ejemplo,
dart pub outdated colorea la salida de forma predeterminada
cuando lo ejecutas en la línea de comandos.
$ dart pub outdated Package Name Current Upgradable Resolvable Latest direct dependencies: args 1.4.4 1.6.0 1.6.0 1.6.0 http 0.11.3+17 0.11.3+17 0.12.1 0.12.1 path 1.6.2 1.6.2 1.6.2 1.7.0 dev_dependencies: all up-to-date transitive dependencies: meta 1.1.6 1.1.6 1.1.6 1.1.8 transitive dev_dependencies: all up-to-date 1 upgradable dependency is locked (in pubspec.lock) to an older version. To update it, use `dart pub upgrade`. 1 dependency is constrained to a version that is older than a resolvable version. To update it, edit pubspec.yaml.
La columna Resolvable muestra a qué versiones puedes actualizar
para cada dependencia desactualizada.
Puedes obtener más información buscando
la columna más a la izquierda con un valor que no esté en rojo.
Por ejemplo, args es actualizable (upgradable) a la 1.6.0,
y http es resoluble (resolvable) a la 0.12.1.
Los paquetes path y meta no están en sus últimas versiones,
pero son las versiones más recientes resolubles,
considerando todas las demás dependencias.
Para solucionar la primera dependencia (args),
la cual figura como actualizable,
solo necesitas ejecutar dart pub upgrade:
dart pub upgrade
Resolving dependencies...
> args 1.6.0 (was 1.4.4)
...
Changed 1 dependency!
Para solucionar la segunda dependencia (http),
la cual figura como resoluble,
puedes modificar la entrada de http en el pubspec para usar
la versión de la columna Resolvable
(o una versión superior compatible).
En la sintaxis de circunflejo (caret syntax), eso es
^0.12.1.
Aquí está la diferencia (diff) para pubspec.yaml:
- http: ^0.11.0
+ http: ^0.12.1
Después de editar pubspec.yaml, ejecutas dart pub upgrade para
actualizar el archivo pubspec.lock.
Luego puedes ejecutar dart pub outdated para confirmar que
has realizado todos los cambios necesarios.
En este ejemplo, los paquetes path y meta siguen estando desactualizados,
debido a restricciones determinadas por otras dependencias:
dart pub upgrade
...
dart pub outdated
Package Name Current Upgradable Resolvable Latest
direct dependencies:
path 1.6.2 1.6.2 1.6.2 1.7.0
dev_dependencies: all up-to-date
transitive dependencies:
meta 1.1.6 1.1.6 1.1.6 1.1.8
transitive dev_dependencies: all up-to-date
Dependencies are all on the latest resolvable versions.
Newer versions, while available, are not mutually compatible.
Para ver por qué estos paquetes están desactualizados, puedes ejecutar dart pub deps
y buscar dependencias de estos paquetes:
dart pub deps -s list
...
dependencies:
...
- terminal_tools 0.1.0
- path 1.6.2
- meta 1.1.6
...
Como muestra la salida anterior,
este paquete depende del paquete terminal_tools,
el cual depende de versiones antiguas de path y meta.
Una vez que se actualice el paquete terminal_tools,
debería ser posible actualizar este paquete.
Columnas de salida
#La salida de dart pub outdated tiene cuatro columnas de información de versión
para cada dependencia desactualizada.
Aquí está la parte de la salida de ejemplo
que muestra las cuatro columnas de versión:
Current (Actual), Upgradable (Actualizable), Resolvable (Resoluble), y Latest (Última).
Package Name Current Upgradable Resolvable Latest direct dependencies: args 1.4.4 1.6.0 1.6.0 1.6.0 http 0.11.3+17 0.11.3+17 0.12.1 0.12.1 path 1.6.2 1.6.2 1.6.2 1.7.0 dev_dependencies: all up-to-date transitive dependencies: meta 1.1.6 1.1.6 1.1.6 1.1.8
- Actual (Current)
-
La versión utilizada en tu paquete, tal como está registrada en
pubspec.lock. Si el paquete no está enpubspec.lock, el valor es-. - Actualizable (Upgradable)
-
La última versión permitida por tu archivo
pubspec.yaml. Esta es la versión a la que se resuelve condart pub upgrade. El valor es-si el valor en la columna Current es-. - Resoluble (Resolvable)
-
La última versión que se puede resolver, al combinarse con todas las demás dependencias. Esta versión corresponde a la que te proporciona
dart pub upgradesi todas las restricciones de versión enpubspec.yamlfuesen ilimitadas (unbounded). Un valor de-significa que el paquete no será necesario. - Última (Latest)
-
La última versión disponible del paquete, excluyendo las versiones preliminares (prereleases) a menos que utilices la opción
--prereleases.
Por ejemplo, supongamos que tu aplicación depende de los paquetes foo y bar,
pero la última versión de bar solo permite versiones principales (major) más antiguas de foo.
El resultado es que la última versión resoluble (resolvable) de foo
es diferente de la última (latest) versión de foo.
Al editar el archivo pubspec.yaml,
generalmente actualizas las secciones dependencies y dev_dependencies
para que cada paquete utilice las versiones de la columna Resolvable.
Opciones
#Para conocer las opciones que se aplican a todos los comandos de pub, consulta Opciones globales.
--[no-]dependency-overrides
#
Por defecto, tiene en cuenta las dependency_overrides
al resolver las restricciones de los paquetes (--dependency-overrides).
Para no tener en cuenta las sobreescrituras (overrides), utiliza --no-dependency-overrides.
--[no-]dev-dependencies
#
Por defecto, tiene en cuenta las dependencias de desarrollo (dev dependencies)
al resolver las restricciones de los paquetes (--dev-dependencies).
Para no tener en cuenta las dependencias de desarrollo, utiliza --no-dev-dependencies.
--json
#
Genera la salida en formato JSON.
--[no-]prereleases
#
Por defecto, incluye versiones preliminares (prereleases)
al determinar las últimas versiones de los paquetes (--prereleases).
Para no tener en cuenta las versiones preliminares, utiliza --no-prereleases.
--[no-]transitive
#
Por defecto, no incluye dependencias transitivasDependencia transitivaUna dependencia que un paquete utiliza indirectamente porque
una de sus dependencias la requiere. Obtén más información
como parte de la salida (--no-transitive).
Para incluir las dependencias transitivas, utiliza --transitive.
--[no-]up-to-date
#
Por defecto, no incluye dependencias que
se encuentren en su última versión (--no-up-to-date).
Para incluir dependencias actualizadas, utiliza --up-to-date.
En un espacio de trabajo (workspace)
#En un espacio de trabajo de Pub (Pub workspace), dart pub outdated lista
todas las dependencias.
Unless stated otherwise, the documentation on this site reflects Dart 3.12.2. Page last updated on 2025-09-04. Ver fuente oreportar un problema.