Skip to main content

Domina la gestión de versiones de Node.js y las fuentes de registro de npm como un profesional

Escrito por

Juan Picado

Node How even quick async functions can block the Event Loop starve tumb

28 de agosto de 2019

0 minutos de lectura

Como continuación de la guía de 10 prácticas recomendadas de seguridad para npm que publicamos a principios de este año, quiero profundizar en cómo facilitar el cambio entre distintas versiones de Node.js y entre distintos registros de npm al trabajar en un entorno de desarrollo.

Administrador de versiones de Node

Al desarrollar aplicaciones de Node.js, es posible que necesites instalar varias versiones de Node.js para realizar tus tareas cotidianas. Esto puede ocurrir, por ejemplo, si necesitas corregir un error en producción o cambiar de proyecto. Hacerlo manualmente cada vez puede requerir mucho esfuerzo y, de todos modos, hay una mejor manera.

Node Version Manager (nvm) es una herramienta que permite cambiar entre distintas versiones de Node.js y ayuda a reducir el trabajo necesario para reproducir errores de producción en entornos de desarrollo.

La instalación predeterminada solo es compatible con entornos macOS y Linux. Si usas Windows, consulta nvm-windows, que debería cubrir tus necesidades.

Con la CLI, puedes instalar cualquier versión de Node.js ejecutando lo siguiente:


nvm install  8.9.4
nvm install node   # nvm install the latest release
nvm install --lts  # nvm install the latest LTS release

¡Así de fácil! Ahora revisemos algunas situaciones típicas en las que NVM puede ayudarte:

  • A veces, algunos miembros del equipo pueden trabajar con una versión de Node.js distinta a la de los demás. Sin embargo, este es un error común que puede causar problemas, como combinar código que no es compatible con la versión de Node.js que usa el resto del equipo. Para exigir que todos los miembros del equipo usen la misma versión, el equipo puede implementar el archivo `.nvmrc`.Por ejemplo:

    $ echo "10" > ~/.nvmrc

    Una vez instalado, cuando un miembro del equipo ejecute nvm install, se usará de forma predeterminada la versión indicada en ese archivo, lo que impedirá que los miembros contribuyan si usan una versión diferente. Así, por ejemplo, evitarás implementar funciones incompatibles de Node.js o usar una sintaxis que podría hacer que tu aplicación deje de funcionar.

  • ¿Necesitas reproducir un error en una versión de Node.js anterior o posterior a la que tienes instalada? Sin NVM, tener varias instancias de versiones globales de npm al mismo tiempo resulta complicado debido a las instalaciones manuales. Con NVM, en cambio, solo tienes que ejecutar otro comando `install` para usar varias instancias en paralelo con distintas versiones, y listo. Mira el siguiente ejemplo.

Si instalaste varias instancias de Node.js, cada una con varios módulos globales de npm, tendrás que volver a instalar todos esos módulos cada vez que cambies de versión de Node.js.

Aquí tienes una solución rápida:

$ nvm install 10 --reinstall-packages-from=8

Administrador de registros de NPM

NPM Registry Manager es otra utilidad útil si trabajas con varios registros, algo habitual en las empresas o si usas una herramienta como verdaccio para trabajar con un registro privado local de uso personal. Con el lanzamiento del registro de paquetes de GitHub, esta herramienta resulta aún más útil y común.

NRM es compatible de fábrica con varios registros, entre ellos:

$ nrm use cnpm

Para obtener más consejos sobre seguridad y productividad de npm, consulta nuestra hoja de referencia: guía de 10 prácticas recomendadas de seguridad para npm.

¡Mantente protegido!

Publicado en:

Leer más

Live Stream

Agentes de remediación, sin misterios: por qué solucionar es mejor que encontrar

Descubre cómo el agente de remediación de Snyk utiliza inteligencia de seguridad, análisis de explotabilidad y validación para convertir las vulnerabilidades en solicitudes de incorporación de cambios listas para fusionarse.

feature insights context
Blog

Dentro del compromiso de keyv en npm: malware preinstall, procedencia confiable y hooks de IDE

keyv 6.0.0 y diez versiones relacionadas de npm distribuyeron malware durante la instalación. Consulta las versiones afectadas, los hashes, los pasos de detección y el orden seguro para remediar el problema.

feature ai ide dark
Blog

Un primer vistazo a Evo Agentic AppSec: remediación agéntica y defensa contra código malicioso

Explora las primeras capacidades de Agentic AppSec de Snyk: un agente de remediación autónomo que corrige vulnerabilidades y una defensa contra código malicioso que bloquea paquetes riesgosos antes de que se publiquen.