GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Hilo vs NPM:una comparación exhaustiva

Introducción

Yarn y NPM son dos de los administradores de paquetes de Node.js más populares. Permiten descargar, instalar y administrar paquetes cuando se desarrolla en JavaScript.

En este tutorial, compararemos Yarn y NPM, consideraremos su rendimiento, facilidad de uso, seguridad y las funciones que brindan.

Hilo vs. NPM:Definiciones

Yarn (otro negociador de recursos más) y NPM (Administrador de paquetes de nodos) son administradores de paquetes utilizados para la codificación de JavaScript. Trabajan con Node.js , que sirve para ayudar a los usuarios a desarrollar y ejecutar código JavaScript fuera de un navegador web.

Node.js utiliza una gran cantidad de paquetes y bibliotecas de código abierto para que la codificación sea más sencilla y eficiente. Los administradores de paquetes como Yarn y NPM permiten a los usuarios instalar, administrar, actualizar y eliminar fácilmente paquetes, bibliotecas y dependencias.

¿Qué es el hilo?

Facebook desarrolló Yarn en 2016 como reemplazo de NPM. Fue diseñado para ofrecer funciones más avanzadas de las que NPM carecía en ese momento (como el bloqueo de versiones) y crear un producto más seguro, estable y eficiente.

Sin embargo, desde que se lanzó Yarn, NPM ha agregado varias características cruciales. En su estado actual, Yarn ahora es más una alternativa a NPM que un reemplazo.

¿Qué es el MNP?

NPM es el administrador de paquetes predeterminado para Node.js con una herramienta CLI que ayuda a instalar, administrar y eliminar paquetes de Node.js. También permite a los usuarios compartir paquetes Node.js de código abierto.

Hilo versus NPM:Comparación

A continuación se muestra un resumen de algunas de las similitudes y diferencias entre Yarn y NPM.

Instalación

Comenzaremos comparando el proceso de instalación de Yarn y NPM:

Hilo

Para comenzar a usar Yarn, debe instalarlo con el instalador MSI del sitio web oficial o un administrador de paquetes como Chocolatey, Scoop CLI o el mismo NPM. Obtenga más información en nuestra guía para instalar Yarn en Windows e instalar Yarn en Ubuntu 18.04.

NPM

NPM se incluye de forma predeterminada con la instalación de Node.js y no requiere ningún paso adicional para instalar. Para obtener más información sobre la instalación de Node.js y NPM, consulte una de nuestras guías:

  • Cómo instalar Node.js y NPM en Ubuntu 18.04 y 20.04
  • Cómo instalar Node.js y NPM en CentOS 7
  • Cómo instalar Node.js y NPM en Windows
  • Cómo instalar Node.js y NPM en Mac

Dependencias

Hilo

La versión 1 de Yarn y NPM administran las dependencias de manera muy similar. Ambos almacenan metadatos del proyecto en package.json archivo, ubicado en node_modules carpeta dentro del directorio del proyecto.

A partir de la versión 2, Yarn ya no usa los node_modules carpeta para realizar un seguimiento de las dependencias. En su lugar, Yarn 2.0 utiliza el Plug'n'Play característica, que genera un único .pnp.cjs expediente. Este archivo contiene un mapa de la jerarquía de dependencias de un proyecto.

Hilo utiliza el yarn Comando para instalar dependencias. Instala dependencias en paralelo, lo que le permite agregar varios archivos al mismo tiempo.

La instalación de dependencias crea automáticamente un archivo de bloqueo que guarda la lista exacta de dependencias utilizadas para el proyecto. Con Yarn, este archivo se llama yarn.lock .

NPM

NPM instala dependencias usando npm install dominio. Las dependencias se instalan secuencialmente, una tras otra.

NPM también crea un archivo de bloqueo de versión llamado package-lock.json . Yarn también es compatible con package-lock.json archivos, lo que permite a los usuarios migrar datos de versión de NPM a Yarn.

Velocidad y rendimiento

Como se mencionó anteriormente, mientras NPM instala los paquetes de dependencia secuencialmente, Yarn se instala en paralelo. Debido a esto, Yarn funciona más rápido que NPM al instalar archivos más grandes.

Ambas herramientas también ofrecen la opción de guardar archivos de dependencia en la memoria caché sin conexión. Esto permite a los usuarios instalar dependencias incluso si están desconectados.

Además, a partir de la versión 2, Yarn utiliza la instalación cero rasgo. Esta función toma el mapa de dependencias de .pnp.cjs y lo utiliza para realizar una instalación de dependencia fuera de línea prácticamente sin retrasos.

Seguridad

Hilo

Yarn realiza una verificación de seguridad como un proceso en segundo plano mientras descarga paquetes. Utiliza la información de la licencia del paquete para garantizar que no descargue scripts maliciosos ni provoque conflictos de dependencia.

Ambas herramientas utilizan protocolos de cifrado para garantizar una transferencia de datos segura. Yarn verifica los paquetes con suma de verificación, mientras que NPM usa SHA-512 (algoritmo hash seguro) almacenado en package-lock.json archivo.

NPM

Las amenazas a la seguridad eran un problema importante en las primeras versiones de NPM. A partir de la versión 6, NPM realiza una auditoría de seguridad cada vez que instala un paquete. Esto ayuda a prevenir vulnerabilidades y garantiza que no haya dependencias conflictivas.

También puede ejecutar una auditoría manual utilizando la npm audit dominio. Si NPM encuentra vulnerabilidades, use npm audit fix debería resolver los problemas.

Facilidad de uso

Tanto Yarn como NPM son relativamente fáciles de usar, especialmente considerando que comparten varios comandos. La salida del comando generalmente es fácil de leer y comprender, aunque puede volverse menos distinguible visualmente cuando se instala una gran cantidad de paquetes.

Ambos administradores de paquetes ofrecen un modo interactivo que ayuda a los usuarios a configurar nuevos proyectos. En Yarn, este modo está habilitado de forma predeterminada, mientras que NPM requiere la npm-upgrade paquete para habilitar la interactividad.

Características

Yarn y NPM tienen varias características clave en común:

  • Generación de archivos de bloqueo: Ambos administradores de paquetes crean automáticamente un archivo de bloqueo de versión. Con Yarn, este archivo se llama yarn.lock , mientras que NPM nombra el archivo package-lock.json .
  • Uso de espacios de trabajo: Tanto Yarn como NPM admiten espacios de trabajo, lo que le permite usar un solo repositorio para administrar las dependencias de varios proyectos.
  • Scripts remotos: Tanto NPM como Yarn le permiten ejecutar scripts de forma remota, utilizando npx comando en NPM y el yarn dlx comando en Yarn.

Las funciones son exclusivas de Yarn:

  • Plug'n'Play: En lugar de usar node_modules carpeta, Yarn genera un solo .pnp.cjs archivo que mapea las dependencias del proyecto. Esto permite árboles de dependencia más optimizados y un inicio de proyecto e instalación de paquetes más rápidos.
  • Cero instalaciones: Esta función está relacionada con Plug'n'Play , utilizando .pnp.cjs archivo para mapear paquetes almacenados en el caché fuera de línea. Esto le permite acceder e instalar paquetes almacenados casi sin demora.
  • Verificación de licencia: Yarn cuenta con un verificador de licencias integrado al descargar e instalar paquetes.

Comandos

La siguiente tabla proporciona una descripción general de algunos de los comandos más utilizados para NPM e Yarn:

Hilo frente a NPM:cómo elegir

Es fundamental tener en cuenta las ventajas y desventajas tanto de NPM como de Yarn al decidir cuál usar.

Hilo

Ventajas

  • Admite la instalación paralela y las instalaciones cero, las cuales aumentan drásticamente el rendimiento.
  • Las versiones más recientes de Yarn ofrecen una forma más segura de bloqueo de versiones.
  • Comunidad de usuarios activa.

Desventajas

  • Yarn no funciona con versiones de Node.js anteriores a la versión 5.
  • Yarn ha mostrado problemas al intentar instalar módulos nativos.

MNP

Ventajas

  • Fácil de usar, especialmente para desarrolladores acostumbrados al flujo de trabajo de versiones anteriores.
  • La instalación del paquete local está optimizada para ahorrar espacio en el disco duro.
  • La interfaz de usuario simple ayuda a reducir el tiempo de desarrollo.

Desventajas

  • El registro NPM en línea puede volverse poco confiable en caso de problemas de rendimiento. Esto también significa que NPM requiere acceso a la red para instalar paquetes desde el registro.
  • A pesar de una serie de mejoras en diferentes versiones, aún existen vulnerabilidades de seguridad al instalar paquetes.
  • La salida del comando puede ser difícil de leer.

Veredicto

Teniendo en cuenta todo lo anterior, NPM es mejor para los desarrolladores que están acostumbrados y satisfechos con su flujo de trabajo actual. Proporciona una experiencia de usuario razonablemente eficiente al mismo tiempo que ahorra espacio en el disco duro.

Por otro lado, Yarn ofrece funciones más avanzadas, como las instalaciones Plug'n'Play y Zero. También proporciona un rendimiento y una seguridad ligeramente mejores, pero a costa del espacio en el disco duro.


Ubuntu
  1. Cómo instalar Yarn en Ubuntu 18.04

  2. ¿Cómo instalar Yarn en Ubuntu 20.04?

  3. Instalar npm en Ubuntu 16.04

  4. Cómo instalar Yarn NPM Package Manager en Oracle Linux 8

  5. Comparación de fechas en Bash

Cómo instalar el administrador de paquetes Yarn NPM en Ubuntu 20.04

Cómo instalar paquetes de forma segura usando Npm o Yarn en Linux

Cómo instalar Yarn NPM Client en Ubuntu y administrar dependencias a través de él

Cómo instalar hilo en Ubuntu 20.04

Cómo instalar Yarn en Ubuntu 22.04

AppArmor vs. SELinux:comparación exhaustiva

    Comando NPM Hilo
    Inicializar un proyecto npm init yarn init
    Ejecutar pruebas para el paquete actual npm test yarn test
    Buscar paquetes obsoletos npm outdated yarn outdated
    Publicar un paquete npm publish yarn publish
    Ejecutar un script npm run yarn run
    Administrar caché de paquetes local npm cache clean yarn cache clean
    Iniciar sesión o cerrar sesión npm login/logout yarn login/logout
    Instalar dependencias npm install yarn
    Instalar paquetes npm install [package name] yarn add [package name]
    Desinstalar paquetes npm uninstall [package name] yarn remove [package name]
    Administrador de actualizaciones npm update yarn upgrade
    Paquetes de actualización npm update [package name] yarn upgrade [package name]
    Instalar paquetes globalmente npm install --global [package name] yarn global add [package name]
    Desinstalar paquetes globalmente npm uninstall --global [package name] yarn global remove [package name]
    Actualización de dependencia interactiva npm run upgrade-interactive yarn upgrade-interactive
    Ejecutar paquete de forma remota yarn dlx
    Comprobar licencias yarn licenses ls