¿Sabes cuándo necesitas desarrollar un proyecto con JavaScript y reutilizar código listo para usar de paquetes y dependencias?, como esos archivos en la famosa carpeta de módulos de nodos. Entonces, NPM y Yarn son dos tecnologías encargadas de administrar y ejecutar estos paquetes y dependencias. Pero, ¿cuál será la diferencia entre cada uno de estos gerentes? ¿Hay uno mejor que el otro?
¡Leyendo este atículo lo descubrirás!
Como se mencionó anteriormente, ambos son administradores de paquetes y dependencias en proyectos de JavaScript. Pero, ¿cómo y por qué exactamente sucede esto? en muchos proyectos es común utilizar algunos paquetes y dependencias existentes para facilitar nuestro desarrollo, ya sea en JavaScript o en cualquier otro lenguaje. Un ejemplo es el propio React, una famosa biblioteca que se utiliza cuando queremos desarrollar páginas web creando componentes de aplicación. Incluso si desea saber más sobre esta tecnología, ¡tenemos un entrenamiento de React JS aquí en Alura!
Aún usando React como ejemplo, si tuviéramos que actualizarlo manualmente cada vez que aparece algo nuevo, o incluso instalar cada una de las dependencias necesarias que van surgiendo a lo largo del desarrollo del proyecto, nos daría mucho trabajo y posibilidades para cometer errores y olvidar algo sería muy probable. Precisamente por eso han surgido los gestores de paquetes y dependencias, que con un solo comando pueden hacerlo todo por nosotros.
Tanto NPM como Yarn utilizan un archivo llamado package.json, donde se describen los paquetes y las dependencias necesarias para el proyecto, con sus versiones. Para crear este archivo, solo se usa el comando npm init o yarn init. Así, cuando ejecutamos el comando npm install, en el caso de NPM, el hilo en el caso de Yarn, todo lo necesario para que el proyecto funcione correctamente ya está actualizado e instalado. Además, siempre que necesitemos instalar un nuevo paquete o dependencia durante el desarrollo del proyecto, también podemos hacerlo con solo una línea de comando, con npm install
Siendo actualmente el administrador de paquetes predeterminado para Node.js, NPM (Node Package Manager) es un proyecto de código abierto creado con el objetivo de facilitar el intercambio de códigos escritos en JavaScript. Al día de hoy sigue siendo el que más se utiliza, precisamente porque cuando instalas Node en la máquina, ya está instalado en tu sistema. Pero NPM no solo tiene una CLI (interfaz de línea de comandos) para que solo pueda ejecutar comandos y administrar paquetes y dependencias. También tiene un sitio web donde puede encontrar su documentación y toda la información sobre los paquetes que desee, así como un repositorio donde se almacena una base de datos pública gigante de JavaScript. Sin embargo, este administrador comenzó a presentar algunos problemas, como retraso en el tiempo de instalación o actualización, diferentes versiones de dependencias en las máquinas e incluso seguridad. Entonces, Yarn apareció para solucionar todo eso.
Creado por Facebook en colaboración con Google, Exponent y Tilde, Yarn también es de código abierto y se creó con el objetivo de ser más rápido y seguro que NPM. Además, algo interesante de esta herramienta es que te permite instalar paquetes sin conexión, creando un caché en tu máquina, lo que significa que en el futuro ni siquiera necesitarás estar conectado a Internet para instalar paquetes.
Aquí puede ver la similitud entre las dos herramientas en la práctica, cambiando solo una o dos palabras para realizar la mayor parte de la configuración necesaria entre paquetes y dependencias.
NPM | YARN | UTILIZACIÓN |
---|---|---|
npm init | yarn init | Administrador de inicialización |
npm install -paquete- | yarn add -paquete- | Instalar un paquete en el proyecto |
npm update -paquete- | yarn upgrade -paquete- | Actualizar un paquete de proyecto |
npm remove -paquete- | yarn remove -paquete- | Eliminar un paquete del proyecto |
Por mucho que Yarn haya surgido con el objetivo de solucionar todos los problemas encontrados con NPM, este último se ha ido actualizando cada día más, hasta el punto en que su diferencia en rendimiento y seguridad con Yarn es cada vez menor. Además, NPM ya se instala automáticamente con Node.js, lo que lo hace muy fácil de usar. Por lo tanto, ambas tecnologías son muy utilizadas por toda la comunidad de JavaScript, por lo que debes analizar cuál es prioritaria en tu proyecto y cuáles son tus preferencias. Recordando que (hasta ahora) ambas son compatibles, lo que significa que puedes, durante el desarrollo de un proyecto, cambiar entre estas dos herramientas con la configuración adecuada, si es necesario.
¿Te gustó el contenido y quieres aprender más sobre Javascript? ¡Aprende con nuestra formacion de Front End y sumergete en estos mares de front-end y back-end!
Rafaella Ballerini
Desarrollador de software, instructor y creador de contenido. Tiene un canal con más de 240 mil personas suscritas, donde enseña sobre los más diversos temas relacionados con la programación y la tecnología, como HTML, CSS, Javascript, Git, Github... Es instructora de front-end en el Alura plataforma y también en Imersão Dev, un proyecto que lleva la enseñanza inicial de programación en todo Brasil de forma gratuita.
Este articulo fue traducido y adaptado por : Rafaela Rocha
Cursos de Programación, Front End, Data Science, Innovación y Gestión.
Luri es nuestra inteligencia artificial que resuelve dudas, da ejemplos prácticos y ayuda a profundizar aún más durante las clases. Puedes conversar con Luri hasta 100 mensajes por semana
Paga en moneda local en los siguientes países
Cursos de Programación, Front End, Data Science, Innovación y Gestión.
Luri es nuestra inteligencia artificial que resuelve dudas, da ejemplos prácticos y ayuda a profundizar aún más durante las clases. Puedes conversar con Luri hasta 100 mensajes por semana
Paga en moneda local en los siguientes países
Puedes realizar el pago de tus planes en moneda local en los siguientes países:
País | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Plan Semestral |
487.37
BOB |
69909.78
CLP |
293586.66
COP |
65.90
USD |
260.86
PEN |
1440.69
MXN |
3037.95
UYU |
65.90
USD |
532.85
GTQ |
34944.39
CRC |
4221.94
DOP |
Plan Anual |
738.82
BOB |
105978.56
CLP |
445057.78
COP |
99.90
USD |
395.45
PEN |
2183.99
MXN |
4605.33
UYU |
99.90
USD |
807.77
GTQ |
52973.37
CRC |
6400.18
DOP |
Acceso a todos
los cursos
Estudia las 24 horas,
dónde y cuándo quieras
Nuevos cursos
cada semana