webentwicklung-frage-antwort-db.com.de

Was ist der Unterschied zwischen Brauen, Garn und Npm?

Ich habe das react-native Paket, das ich global mit npm installiert habe. Jetzt steht in der ersten Zeile, nachdem der Befehl init ausgeführt wurde. Folgende:

Installing react-native from npm...
Consider installing yarn to make this faster: https://yarnpkg.com

Ich habe diese Website überprüft und sie sah für mich interessant aus, aber ich weiß nicht genau, wie sie aussehen würde. Zuerst dachte ich, ich brauche brew, um yarn zu installieren, damit ich npm installieren kann. Aber jetzt denke ich, dass yarn ein Ersatz von npm ist. Ist das eine richtige Aussage?

Warum möchte ich so viele Paketmanager haben?

Ich verstehe, dass es für Software wie Atom oder Visual Studio Code nützlich ist, einen eigenen Paketmanager zu haben. Aber für die Entwicklung sehe ich keinen Grund, warum jemand vier verschiedene Paketmanager verwenden möchte (brew für 'primäre Software', yarn für npm Pakete, npm für Backend-Module und bower für Front-End-Bibliotheken). Wie kann diese Paketmanager-Gesamtstruktur entwirrt werden?

29
user007

Ich bin nicht mit dem Brauen vertraut, aber ich nehme an, Sie meinen das Homebrew-Softwarepaket-Managementsystem für macOS.

Dann ist der Zweck jedes Systems:

  1. brew : Installation von Software, d. h. bereit, Anwendungen wie wget zu verbrauchen.
  2. npm : Installation von Paketen (Bibliotheken), d. h. Funktionen, mit denen Sie Ihre eigenen Anwendungen erstellen können.
  3. Garn : auch Installation von Paketen.

Garn hat einige Vorteile gegenüber Npm, die beiden wichtigsten sind die Geschwindigkeit und die Vorhersagbarkeit. Yarn verwendet die package.json-Datei von npm erneut und ändert ihre Struktur nicht. Daher können Sie yarn install Anstatt von npm install und theoretisch wird alles automatisch funktionieren.

P.S. Ich stimme zu, https://yarnpkg.com hat nicht genug Hintergrundwissen darüber, warum zum Teufel wir ein anderes Paketverwaltungssystem brauchen, aber es gibt einen großartigen Artikel der das ausfüllt Spalt.

27
Monsignor

Garn vs Npm

faden und Npm sind beide Module Installationen und Abhängigkeiten verwalten. Garn wurde gebaut, um einige der Mängel von npm zu beheben.

Die größten Vorteile von Garn gegenüber npm sind

  1. Das Installieren von Paketen mit Garn erfolgt parallel, sodass die Installation von Paketen schneller erfolgt.
  2. package.json kann in Bezug auf die Versionsnummern sehr locker sein. yarn.lock (ähnlich wie npm shirkwrap) sperrt dies, so dass zwei Maschinen mit demselben package.json Installiere immer genau die gleichen Pakete.

  3. Mit yarn können Sie überprüfen, warum einige Pakete installiert sind (verstehen Sie den Abhängigkeitsbaum)

Ref: https://www.sitepoint.com/yarn-vs-npm/

4
priyankaavj

Yarn ist ein JavaScript-Paketmanager, der von Facebook, Google, Exponent und Tilde erstellt wurde. Es wurde erstellt, um die Funktionen zu entfernen oder zu überwinden, die in npm fehlen. Im Vergleich zu npm hat es

  • Verbesserte Sicherheit
  • Offline-Modus
  • Parallele Installation - daher schnellere Installation

Ein weiterer Hauptunterschied war die Datei yarn.lock , aber nach npm ^5.x.x Sie stellen auch die Datei package-lock.json bereit.

Und die Befehle von Garn funktionieren wie npm:

# Starting a new project
npm init === yarn init

# Installing all the dependencies of the 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]

Referenzen

https://www.sitepoint.com/yarn-vs-npm/

https://scotch.io/@brian_kimo/npm-vs-yarn

und die offizielle Ankündigung

https://code.facebook.com/posts/184007561954536

3
Sunil Garg

Garn ist wie NPM ein Paketmanager für Node.JS. Garn wird von Facebook gebaut. Es ist schneller und hat mehr Funktionen als NPM.

Ihre Hauptverkaufsargumente sind:

  • Sicherheit Mit yarn.lock file (ähnlich wie bei NPM npm-shrinkwrap.json) werden alle Abhängigkeiten von der exakten Version gesperrt. Sie haben also keine Probleme mehr mit "aber es funktioniert auf meinem Computer". Jeder hat die gleichen Versionen in yarn.lock Datei gesperrt
  • Speed ​​Yarn verwendet (schnelle) Proxies und (Offline-) Caching, um Ihre Module schneller bereitzustellen. Es hat auch einen LIZENZ-Checker, der die Lizenz aller Ihrer Abhängigkeitsmodule überprüft.
1
MAULIK MODI