Botón para abrir el Menú Botón para cerrar el Menú
Logo da empresa Alura
Iniciar Sesión Nuestros Planes
Formaciones Conoce a Luri
  • Programación _
  • Front End _
  • Data Science _
  • DevOps _
  • Innovación y Gestión _
Artículos de Tecnología > Front-end

NPM vs Yarn

Rafaella Ballerini
Rafaella Ballerini
17/01/2023

Compartir

img

¿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!

imagem npm vs yarn

¿Para qué sirven?

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.

¿Cómo se gestiona?

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 o yarn add . Genial, ahora entiendo para qué sirven estas dos tecnologías y cómo funcionan, pero entonces, ¿cuál sería la diferencia en usar cada una de ellas de todos modos?

logo de npm

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.

YARN

logo de yarm

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.

Diferencias en la línea de comandos

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.

NPMYARNUTILIZACIÓN
npm inityarn initAdministrador 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

Después de todo, ¿cuál es mejor?

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!

Foto de perfil

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

Rafaella Ballerini
Rafaella Ballerini

Desenvolvedora de software, instrutora e criadora de conteúdo. Possui um canal com mais de 240 mil pessoas inscritas, onde ensina sobre os mais diversos temas relacionados a programação e tecnologia, como HTML, CSS, Javascript, Git, Github... É instrutora front-end na plataforma da Alura e também na Imersão Dev, projeto que leva o ensino inicial de programação para todo o Brasil gratuitamente.

Artículo Anterior
Sublime Text: Conoce a uno de los mejores editores de código
Siguiente Artículo
Virtual DOM

Ver otros artículos sobre Front-end

Navegación

  • Planes
  • Instructores
  • Blog
  • Política de privacidad
  • Términos de uso
  • Sobre nosotros
  • Preguntas frecuentes

¡CONTÁCTANOS!

  • ¡Quiero entrar en contacto!

Blog

  • Programación
  • Data Science
  • Front End
  • Innovación y Gestión
  • DevOps

AOVS Sistemas de Informática S.A CNPJ 05.555.382/0001-33

SÍGUENOS EN NUESTRAS REDES SOCIALES

YouTube Facebook Instagram Linkedin Whatsapp Spotify

NOVEDADES Y LANZAMIENTOS

Aliados

  • Programa de aceleração Scale-Up Endeavor
  • En Alura somos unas de las Scale-Ups seleccionadas por Endeavor, programa de aceleración de las empresas que más crecen en el país.
  • Growth Academy 2021 do Google For Startups
  • Fuimos unas de las 7 startups seleccionadas por Google For Startups en participar del programa Growth Academy en 2021
Alura

Powered by

Caelum

AOVS Sistemas de Informática S.A CNPJ 05.555.382/0001-33

SÍGUENOS EN NUESTRAS REDES SOCIALES

YouTube Facebook Instagram Linkedin Whatsapp Spotify

Cursos

Cursos de Programación
Lógica de Programación | Java
Cursos de Front End
HTML y CSS | JavaScript | React
Cursos de Data Science
Data Science | Machine Learning | Excel | Base de Datos | Data Visualization | Estadística
Cursos de DevOps
Docker | Linux
Cursos de Innovación y Gestión
Transformación Ágil | Marketing Analytics

Alura

  • Educação em Tecnologia

    • logo fiap FIAP
    • logo casa do codigo Casa do Código
    • logo pm3 PM3 - Cursos de Produto
  • Mais Alura

    • logo alura start START BY Alura
    • logo alura lingua Alura Língua
    • logo alura para empresas Alura Para Empresas
    • logo alura latam Alura LATAM
  • Comunidade

    • logo tech guide Tech Guide
    • logo 7 days of code 7 days of code
    • logo Hipsters ponto Jobs Hipsters ponto Jobs
  • Podcasts

    • logo Hipster Network Hipster Network
    • logo Hipsters ponto Tech Hipsters ponto Tech
    • logo Dev sem fronteiras Dev sem Fronteiras
    • logo Like a Boss Like a Boss
    • logo IA Sob Controle IA Sob Controle
    • logo Mesa de Produto Mesa de Produto
    • logo Decode Decode
    • logo FIAPCast FIAPCast