node mac instalar con como actualizar node.js teamcity npm karma-runner

node.js - mac - instalar npm en windows



npm compruebe y actualice el paquete si es necesario (8)

Comandos NPM para actualizar o corregir vulnerabilidades en algunos archivos de manifiesto de dependencia

  • Utilice el siguiente comando para verificar las vulnerabilidades o los datos obsoletos en los módulos de su nodo.

    npm audit

  • Si se encuentran vulnerabilidades, utilice el siguiente comando para solucionar todos los problemas.

    npm audit fix

  • Si no te funciona, prueba

    npm audit fix -f , este comando casi solucionará todas las vulnerabilidades. Algunas dependencias o devDependencies están bloqueadas en el archivo package-lock.json , así que usamos el indicador -f para forzar su actualización.

  • Si no desea utilizar la corrección de auditoría forzada, puede corregir manualmente las versiones de sus dependencias cambiándolas en el archivo package-lock.json y package.json . Luego ejecute `npm update && npm upgrade ''

Necesitamos integrar el corredor de prueba de Karma en TeamCity y para eso me gustaría darle un pequeño script a sys-ingenieros (powershell o lo que sea) que:

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

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

  3. si no lo es, o la versión instalada es más antigua de lo deseado: recoja e instale la versión correcta

  4. ejecútelo: karma start ./Scripts-Tests/karma.conf.js --reporters teamcity --single-run

Así que mi pregunta real es: "¿cómo se puede verificar una secuencia de comandos, si se desea instalar la versión del paquete?". ¿Debería hacer la verificación o es seguro llamar a npm -g install cada vez?

No quiero verificar e instalar siempre la última versión disponible, ya que otros valores de configuración pueden volverse incompatibles


Al instalar paquetes npm (tanto a nivel global como local), puede definir una versión específica utilizando la sintaxis de @version para definir la versión que se instalará.

En otras palabras, hacer: npm install -g [email protected] asegurará que solo 0.9.2 esté instalado y no se reinstalará si ya existe.

Como consejo, sugeriría evitar las instalaciones globales de npm siempre que pueda. Muchas personas no se dan cuenta de que si una dependencia define un archivo bin, se instala en ./node_modules/.bin/. A menudo, es muy fácil de usar esa versión local de un módulo instalado que se define en su package.json. De hecho, los scripts npm agregarán los ./node_modules/.bin a su ruta.

Como ejemplo, aquí hay un package.json que, cuando ejecute npm install && npm test , instalará la versión de karma definida en mi package.json, y npm install && npm test esa versión de karma (instalada en node_modules / .bin / karma) cuando ejecutando el script de test :

{ "name": "myApp", "main": "app.js", "scripts": { "test": "karma test/*", }, "dependencies": {...}, "devDependencies": { "karma": "0.9.2" } }

Esto le brinda la ventaja de que package.json define la versión de karma que se debe usar y no tiene que mantener esa configuración global en su cuadro de CI.



Para verificar si algún módulo en un proyecto es ''antiguo'', debe hacer:

npm outdated

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

Aquí hay un ejemplo, que muestra que xml2js (que está en node_modules / en el directorio actual) está desactualizado, porque existe una versión más nueva (0.2.7):

[email protected] node_modules/xml2js current=0.2.6

Si desea buscar módulos desactualizados e instalar una versión más reciente, puede hacer: npm update (para todos los módulos) o npm update xml2js (solo verificaciones / actualizaciones xml2js)

Echa un vistazo a los documentos de NPM:


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

npm-check

Compruebe si hay dependencias desactualizadas, incorrectas y no utilizadas.

También proporciona una forma interactiva conveniente para actualizar las dependencias.


Un paso fácil:

$ npm i -g npm-check-updates && ncu -a && npm i

Eso es todo. Todas las versiones de paquetes en package.json serán las más recientes.

Editar:

¿Que está sucediendo aquí?

  1. Instalando un paquete que revisa las actualizaciones por ti.

  2. Use este paquete para actualizar todas las versiones de paquetes en su package.json (-a es la abreviatura de --updateAll).

  3. Instale todas las nuevas versiones de los paquetes.


npm outdated identificará los paquetes que deben actualizarse, y la npm update <package name> se puede usar para actualizar cada paquete. Pero la npm update <package name> no actualizará las versiones en su package.json, lo cual es un problema.

El mejor flujo de trabajo es:

  1. Identificar paquetes caducados
  2. Actualiza las versiones en tu package.json
  3. Ejecute la npm update para instalar las últimas versiones de cada paquete

Consulte npm-check-updates para obtener ayuda con este flujo de trabajo.

  • Instale npm-check-updates
  • Ejecute npm-check-updates para enumerar qué paquetes están desactualizados (básicamente lo mismo que ejecutar npm outdated )
  • Ejecute npm-check-updates -u para actualizar todas las versiones en su package.json (esta es la salsa mágica)
  • Ejecute la npm update como de costumbre para instalar las nuevas versiones de sus paquetes basadas en el paquete actualizado.json

  • Para actualizar un solo paquete local:

    1. Primero descubra sus paquetes obsoletos:

      npm outdated

    2. Luego actualice el paquete o paquetes que desee manualmente como:

      npm update --save package_name

De esta manera no es necesario actualizar su archivo package.json local.

Tenga en cuenta que esto actualizará su paquete a la última versión.

  • Si escribe alguna versión en su archivo package.json y lo hace:

    npm update package_name

    En este caso, obtendrá la siguiente versión estable (deseada) con respecto a la versión que escribió en su archivo package.json .

Y con npm list (package_name) puede encontrar la versión actual de sus paquetes locales.