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?
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:
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.
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
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.
Mit yarn
können Sie überprüfen, warum einige Pakete installiert sind (verstehen Sie den Abhängigkeitsbaum)
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
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
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: