npm es el administrador de paquetes predeterminado para Node.js. Facebook lleva mucho tiempo desarrollando una solución alternativa de gestión de paquetes llamada Yarn . Yarn parece estar desapareciendo lentamente de los archivos Léame de GitHub como solución predeterminada y las estadísticas en el sitio oficial muestran que solo una fracción de las instalaciones de paquetes se realizan con Yarn. Sin embargo, vale la pena mirar fuera de lo común.
Yarn es totalmente compatible con los archivos package.json existentes, por lo que puedes usar fácilmente ambas soluciones en proyectos ya creados. Los comandos para ambas soluciones difieren solo ligeramente. A continuación, se muestra una comparación de los comandos más importantes.:
| Descripción | npm | Hilo |
| Inicializar | npm init | hilo init |
| Actualizar | npm install -g npm | actualización automática de hilo |
| Paquete de instalación | npm install - guardar [nombre] | hilo añadir [nombre] |
| Paquete de instalación | npm install --save-dev [nombre] | añadir hilo --dev [nombre] |
| Instalar paquete globalmente | npm install -g [nombre] | hilo global añadir [nombre] |
| Instalar todos los paquetes | npm install | instalación de hilo |
| Actualizar todos los paquetes | actualización npm | actualización de hilo |
| Desinstalar paquete | npm eliminar [nombre] | hilo quitar [nombre] |
Yarn comenzó con el objetivo de resolver algunos de los puntos débiles de npm. La diferencia más obvia es el mayor rendimiento: a través de instalaciones incrementales, subprocesos múltiples y la última característica excelente Plug'n'Play (PNP), el rendimiento aumenta dramáticamente. Plug'n'Play rechaza la idea de una carpeta node_modules basada en proyectos, que a menudo puede crecer hasta alturas astronómicas en la cantidad de archivos. Puede obtener más información sobre esto en el documento técnico oficial de Plug'n'Play . Instalamos eslint una vez con npm y luego con hilo con el caché calentado en cada caso para dejar clara la diferencia en velocidad (¡6x!):

