usar que por javascript npm yarnpkg

javascript - que - ¿Cuándo usar Yarn sobre NPM? ¿Cuáles son las diferencias?



por que usar yarn (4)

¿Cuáles son las diferencias entre Yarn y NPM? Al momento de escribir esta pregunta, solo puedo encontrar algunos artículos en Internet que muestran cuál es el equivalente de Yarn de un comando NPM como this .

¿Tienen las mismas funcionalidades (sé que Yarn hace almacenamiento en caché local y parece que solo necesita descargar un paquete una vez) pero aparte de esto, ¿hay algún beneficio para pasar de NPM a Yarn?


ACTUALIZACIÓN: marzo de 2018 (un poco tarde ...)

Desde la versión 5, npm

  • genera un ''archivo de bloqueo'' llamado package-lock.json que corrige todo su árbol de dependencias de la misma manera que lo hace el mecanismo de bloqueo de hilo (o cualquier otro),
  • Se ha hecho una herramienta.
  • --save ahora está implícito para npm i
  • Mejor uso de red y caché

npm 5.7.0 introdujo aún más el comando npm ci para instalar dependencias más rápidamente en un entorno de integración continua instalando solo paquetes encontrados en package-lock.json (informando un error si package-lock.json y package.json no están sincronizados )

Personalmente , sigo usando npm .

Original

No me gusta citar directamente de los documentos, pero hacen un gran trabajo al explicar por qué, de manera tan concisa que no veo cómo resumir más las ideas.

En gran parte:

  1. Siempre sabes que obtienes lo mismo en cada máquina de desarrollo

  2. npm operaciones que npm no lo hace, y

  3. Hace un uso más eficiente de la red.

  4. También puede hacer un uso más eficiente de otros recursos del sistema (como RAM) .

¿Cuáles son las experiencias de producción de la gente con él? Quién sabe, es un bebé para el público en general.

TL; DR de Yehuda Katz :

Desde el primer momento, el archivo de bloqueo Yarn garantiza que ejecutar hilo repetidamente en el mismo repositorio da como resultado los mismos paquetes.

En segundo lugar, Yarn intenta tener un buen rendimiento, con un caché frío, pero especialmente con un caché cálido.

Finalmente, Yarn hace de la seguridad un valor central.

Buena publicación de blog

" NPM vs Yarn Cheat Sheet " por Gant Laborde

Versión un poco más larga del proyecto :

Rápido: Yarn almacena en caché cada paquete que descarga para que nunca más lo necesite. También paraleliza las operaciones para maximizar la utilización de los recursos para que los tiempos de instalación sean más rápidos que nunca.

Fiable: utilizando un formato de archivo de bloqueo detallado pero conciso y un algoritmo determinista para las instalaciones, Yarn puede garantizar que una instalación que funcionó en un sistema funcionará exactamente de la misma manera en cualquier otro sistema.

Seguro: Yarn usa sumas de verificación para verificar la integridad de cada paquete instalado antes de ejecutar su código.

Y de README.md :

  • Modo sin conexión: si ha instalado un paquete anteriormente, puede instalarlo nuevamente sin ninguna conexión a Internet.
  • Determinista: las mismas dependencias se instalarán exactamente de la misma manera en todas las máquinas, independientemente del orden de instalación.
  • Rendimiento de la red: Yarn pone en cola eficientemente las solicitudes y evita las cascadas de solicitudes para maximizar la utilización de la red.
  • Registros múltiples: instale cualquier paquete desde npm o Bower y mantenga el flujo de trabajo de su paquete igual.
  • Resiliencia de la red: un solo error de solicitud no hará que falle la instalación. Las solicitudes se vuelven a intentar en caso de falla.
  • Modo plano: resuelva versiones de dependencias que no coinciden en una sola versión para evitar crear duplicados.
  • Más emojis. 🐈

Use PNPM

Beneficios de PNPM sobre Yarn y NPM

pnpm usa enlaces duros y enlaces simbólicos para guardar una versión de un módulo solo una vez en un disco. Cuando use npm o Yarn, por ejemplo, si tiene 100 proyectos que usan la misma versión de lodash, tendrá 100 copias de lodash en el disco. Con pnpm, lodash se guardará en un solo lugar en el disco y un enlace rígido lo colocará en los node_modules donde debe instalarse.

Como resultado, ahorra gigabytes de espacio en su disco y tiene instalaciones mucho más rápidas. Si desea obtener más detalles sobre la estructura única node_modules que crea pnpm y por qué funciona bien con el ecosistema Node.js, lea este pequeño artículo: ¿Por qué deberíamos usar pnpm?

¿Cómo instalar?

npm install -g pnpm

ahora instale el paquete

pnpm install -g typescript // or your desired package

Aquí está la barra de progreso que muestra el tiempo de instalación tomado por NPM , YARN y PNPM (una barra más corta es mejor)

Haga clic para el cheque completo Benchmark

Para más detalles, visite https://www.npmjs.com/package/pnpm


Cuando instala un paquete usando Yarn (usando yarn add packagename), coloca el paquete en su disco . Durante la próxima instalación, este paquete se usará en lugar de enviar una solicitud HTTP para obtener el tarball del registro.

Yarn viene con un práctico verificador de licencias , que puede volverse realmente poderoso en caso de que tenga que verificar las licencias de todos los módulos de los que depende.

Si está trabajando en un software propietario, en realidad no importa cuál use. Con npm, puede usar npm-shrinkwrap.js, mientras que puede usar yarn.lock con Yarn.

Para obtener más información, lea el siguiente blog.

https://blog.risingstack.com/yarn-vs-npm-node-js-package-managers/


Tratando de dar una mejor visión general para principiantes.

npm ha sido históricamente (2010) el administrador de paquetes más popular para JavaScript. Si desea usarlo para administrar las dependencias de su proyecto, puede escribir el siguiente comando:

npm init

Esto generará un archivo package.json . Contiene todas las dependencias del proyecto.

Entonces

npm install

crearía un directorio node_modules y descargaría las dependencias (que agregó al archivo package.json ) dentro de él.

También creará un archivo package-lock.json . Este archivo se utiliza para describir el árbol de dependencias que se generó. Permite a los desarrolladores instalar exactamente las mismas dependencias. Por ejemplo, podría imaginarse a un desarrollador que actualiza una dependencia a v2 y luego a v3, mientras que otro actualiza directamente a v3.

npm instala las dependencias de una manera no determinista, lo que significa que los dos desarrolladores podrían tener un directorio node_modules diferente que da como resultado comportamientos diferentes . ** npm ha sufrido una mala reputación como, por ejemplo, en febrero de 2018: se descubrió un problema en la versión 5.7.0 en el que ejecutar sudo npm en sistemas Linux cambiaría la propiedad de los archivos del sistema, rompiendo permanentemente el sistema operativo.

Para resolver esos problemas y otros, Facebook introdujo un nuevo administrador de paquetes (2016): Lanza un administrador de paquetes más rápido, más seguro y más confiable para JavaScript.

Puede agregar Yarn a un proyecto escribiendo:

yarn init

Esto creará un archivo package.json . Luego, instale las dependencias con:

yarn install

Se generará una carpeta node_modules . Yarn también generará un archivo llamado yarn.lock . Este archivo tiene el mismo propósito que package-lock.json pero en su lugar se construye utilizando un algoritmo determinista y confiable, lo que conduce a compilaciones consistentes.

Si comenzó un proyecto con npm , en realidad puede migrar a Yarn fácilmente. el hilo consumirá el mismo package.json . Consulte Migrar desde npm para más detalles.

Sin embargo, npm se ha mejorado con cada nuevo lanzamiento y algunos proyectos todavía usan npm sobre hilo .