manager - ¿Cuál es la diferencia entre elaboración, hilado y npm?
yarn update (4)
No estoy familiarizado con brew, pero supongo que te refieres al sistema de gestión de paquetes de software Homebrew para macOS.
Entonces el propósito de cada sistema es:
- brew : instalación de software, es decir, lista para consumir aplicaciones como wget.
- npm : instalación de paquetes (bibliotecas), es decir, piezas de funcionalidad para ayudarlo a construir sus propias aplicaciones.
- Hilo : también instalación de paquetes.
El hilo tiene algunas ventajas sobre npm, los dos principales son la velocidad y la previsibilidad. Yarn reutiliza el archivo package.json de npm y no cambia su estructura. Por lo tanto, puede ejecutar yarn install
lugar de npm install
y, en teoría, todo funcionará automáticamente.
PD: Estoy de acuerdo, https://yarnpkg.com no tiene suficientes antecedentes sobre por qué demonios necesitamos otro sistema de administración de paquetes, pero hay un gran artículo que llena ese vacío.
Estaba usando el paquete react-native
que instalé globalmente con npm
. Ahora dice en la primera línea después de ejecutar el comando init
. El seguimiento:
Installing react-native from npm...
Consider installing yarn to make this faster: https://yarnpkg.com
Así que estaba revisando ese sitio web y me pareció interesante, pero no sé exactamente cuál sería. Al principio, pensé que necesitaría brew
para instalar el yarn
, así que podría npm
para instalar el npm
. Pero ahora creo que el yarn
es un reemplazo de npm
. ¿Es esa una afirmación correcta?
¿Por qué me gustaría tener tantos gestores de paquetes?
Entiendo que es útil para software como Atom o Visual Studio Code para tener su propio administrador de paquetes. Pero para el desarrollo, no veo la razón por la que a alguien le gustaría usar cuatro administradores de paquetes diferentes (preparación para ''software primario'', yarn
para paquetes npm, npm para módulos backend y bower para bibliotecas front-end). ¿Cómo se puede desenredar este gestor de paquetes?
Yarn es un gestor de paquetes JavaScript creado por Facebook, Google, Exponent y Tilde. Está creado para eliminar o superar las características que faltan en npm. En comparación con npm tiene
- Seguridad mejorada
- Modo offline
- Instalación paralela - instalación tan rápida
Otra diferencia importante fue el archivo yarn.lock , pero después de npm ^ 5.xx también proporcionan el archivo package.lock.json .
Y los comandos de hilo funcionan como npm:
# Starting a new project
npm init === yarn init
# Installing all the dependencies of project
npm install === yarn or yarn install
# Adding a dependency
npm install [package] === yarn add [package] # The package is saved to your package.json immediately.
npm install [package]@[version] === yarn add [package]@[version]
npm install [package]@[tag] === yarn add [package]@[tag]
# Add a dev dependency
npm install [package] --save-dev === yarn add [package] --dev
# Upgrading a dependency
npm update [package] === yarn upgrade [package]
npm update [package]@[version] === yarn upgrade [package]@[version]
npm update [package]@[tag] === yarn upgrade [package]@[tag]
# Removing a dependency
npm uninstall [package] === yarn remove [package]
# View registry information
npm view [package] === yarn info [package]
# List installed packages
npm list === yarn list
npm list --depth === yarn list --depth=0
# Install packages globally
npm install -g [package] === yarn global addb [package]
# Run a defined package script
npm run [script] === yarn run [script]
Referencias
https://www.sitepoint.com/yarn-vs-npm/
https://scotch.io/@brian_kimo/npm-vs-yarn
y el anuncio oficial
Yarn es, como NPM , un gestor de paquetes para Node.JS. El hilo es construido por Facebook. Es más rápido y tiene más funciones que NPM.
Sus principales puntos de venta son:
- Seguridad Con el archivo yarn.lock (similar al npm-shrinkwrap.json de NPM) todas las dependencias están bloqueadas en la versión exacta. Entonces, ya no tienes que luchar con " Pero funciona en mi máquina ". Todos tienen las mismas versiones bloqueadas en el archivo yarn.lock
- Speed Yarn usa proxies (rápidos) y almacenamiento en caché (sin conexión) para entregar sus módulos más rápido. También tiene un verificador de LICENCIA, que verifica la licencia de todos sus módulos de dependencia.
hilo vs npm
yarn y npm son instalaciones y dependencias de módulos de gestión. Yarn fue construido para abordar algunas de las deficiencias de npm.
Las mayores ventajas de hilo sobre npm son
- La instalación de paquetes con hilo es paralelizada y, por lo tanto, la instalación de paquetes es más rápida.
package.json puede ser muy suelto en términos de números de versión. yarn.lock (similar a npm shirkwrap) bloquea esto para que dos máquinas con el mismo paquete.json siempre instalen exactamente los mismos paquetes.
yarn
permite verificar por qué algunos paquetes están instalados (entienda el árbol de dependencias)