npm verifica y actualiza el paquete si es necesario

Resuelto iLemming asked hace 54 años • 22 respuestas

Necesitamos integrar Karma test runner en TeamCity y para eso me gustaría darles a los ingenieros de sistemas un pequeño script (powershell o lo que sea) que:

  1. seleccione el número de versión deseado de algún archivo de configuración (supongo que puedo ponerlo como comentario directamente en karma.conf.js)

  2. compruebe si la versión definida de karma runner está instalada en el repositorio global de npm

  3. si no es así, o la versión instalada es anterior a la deseada: elija e instale la versión correcta

  4. ejecutarlo:karma start .\Scripts-Tests\karma.conf.js --reporters teamcity --single-run

Entonces, mi verdadera pregunta es: "¿cómo se puede verificar un script, si se desea tener instalada la versión del paquete?". ¿Deberías hacer la verificación o es seguro simplemente llamar npm -g installcada vez?

No quiero comprobar e instalar siempre la última versión disponible, porque otros valores de configuración pueden volverse incompatibles.

iLemming avatar Jan 01 '70 08:01 iLemming
Aceptado

Para comprobar si algún módulo de un proyecto es "antiguo":

npm outdated

' obsoleto ' verificará todos los módulos definidos package.jsony verá si hay una versión más nueva en el registro de NPM.

Por ejemplo, digamos xml2js 0.2.6(ubicado en node_modulesel proyecto actual) está desactualizado porque existe una versión más nueva (0.2.7). Tu verias:

xml2js@0.2.7 node_modules/xml2js current=0.2.6

Para actualizar todas las dependencias, si está seguro, esto es deseable:

npm update

O bien, para actualizar una única dependencia como xml2js:

npm update xml2js

Para actualizar package.jsonlos números de versión, agregue la --savebandera:

npm update --save
dublx avatar May 13 '2013 23:05 dublx

npm outdatedidentificará los paquetes que deben actualizarse y npm update <package name>se puede utilizar para actualizar cada paquete. Pero antes de [email protected] , npm update <package name>no se actualizarán las versiones en su package.json, lo cual es un problema.

El mejor flujo de trabajo es:

  1. Identificar paquetes obsoletos connpm outdated
  2. Actualice las versiones en su paquete.json
  3. Ejecute npm updatepara instalar las últimas versiones de cada paquete.

Consulte npm-check-updatespara ayudar con este flujo de trabajo.

  • Instale npm-check-updates connpm i npm-check-updates -g
  • Ejecute npm-check-updatespara enumerar qué paquetes están desactualizados (básicamente lo mismo que ejecutar npm outdated)
  • Ejecute npm-check-updates -upara actualizar todas las versiones en su paquete.json (esta es la salsa mágica)
  • Ejecute npm updatecomo de costumbre para instalar las nuevas versiones de sus paquetes según el paquete.json actualizado.

O más simplemente usando npx, para que no tengas que instalar nada globalmente:

npx npm-check-updates -u
npm install
Erik Olson avatar Jun 01 '2014 13:06 Erik Olson

También hay un módulo "nuevo" llamado npm-check:

verificación npm

Compruebe si hay dependencias obsoletas, incorrectas y no utilizadas.

captura de pantalla de npm-check

También proporciona una manera interactiva conveniente de actualizar las dependencias con npm-check -u.

alecxe avatar Dec 14 '2014 07:12 alecxe