Tengo una aplicación angular. En el paquete.json definí para todos los paquetes angulares la versión 12.2.9 como:
"@angular/animations": "^12.2.9", "@angular/cdk": "^12.2.9", "@angular/common": "^12.2.9", "@angular/compiler": "^12.2.9", "@angular/core": "^12.2.9", ... Eliminé la carpeta node_modules y el 'package-lock.json`
Instalé todos los paquetes con npm install
Después de eso, llamando a npm outdated , la versión actual de todos mis paquetes angulares es 12.2.13 y no 12.2.9
¿Dónde se define que se instala la versión 12.2.13 y no la versión del package.json ?
En package-lock.json hay toda la información sobre sus paquetes instalados en node_modules . si va allí y busca el archivo @angular/animations por ejemplo, verá su versión.
La solución es eliminar node_modules y package-lock.json y borrar el caché ejecutando npm cache clean --force .
Como Harun Yilmaz mencionó en los comentarios:
Hay signos de intercalación (^) en las versiones. Por lo tanto, eliminar package-lock.json y node_modules y ejecutar npm install seguirá instalando la última versión compatible.
Puede averiguar qué hacen exactamente ^ y ~ en la gestión de paquetes npm en esta respuesta de jgillich .