Die Umstellung von npm sollte für die meisten Benutzer ein recht einfacher Prozess sein. Yarn verwendet das gleiche package.json
Format wie npm und kann jedes Paket aus der npm Registry installieren.
Wenn du Yarn in deinem bestehenden npm Projekt ausprobieren möchtest, dann führe einfach folgendes aus:
yarn
Dies wird deinen node_modules
Ordner mit dem Auflösungsalgorithmus von Yarn anordnen, der kompatibel mit dem Algorithmus von thenode.js Modulauflösungsalgorithmus kompatibel ist.
Wenn Sie einen Fehler erhalten, überprüfen Sie bitte, ob ein Problem besteht oder melden Sie es im Yarn Issue Tracker.
Wenn Sie entweder yarn
oder yarn add <package>
ausführen, wird Yarn eine yarn.lock
Datei im Stammverzeichnis Ihres Pakets erzeugen. Sie brauchen diese Datei nicht zu lesen oder zu verstehen – checken Sie sie einfach in die Versionskontrolle ein. Wenn andere Leute anfangen, Yarn anstelle von npm
zu benutzen, wird die yarn.lock
-Datei sicherstellen, dass sie genau die gleichen Abhängigkeiten erhalten wie Sie.
In den meisten Fällen wird die Ausführung von yarn
oder yarn add
zum ersten Mal einfach funktionieren. In einigen Fällen sind die Informationen in einer package.json
-Datei nicht explizit genug, um Abhängigkeiten zu eliminieren, und die deterministische Art, mit der Yarn Abhängigkeiten auswählt, führt zu Abhängigkeitskonflikten. Dies ist besonders wahrscheinlich in größeren Projekten, wo manchmal npm install
nicht funktioniert und die Entwickler häufig node_modules
entfernen und von Grund auf neu erstellen. Wenn das passiert, versuchen Sie npm
zu verwenden, um die Versionen der Abhängigkeiten deutlicher zu machen, bevor Sie zu Yarn konvertieren.
Ab Yarn 1.7.0 können Sie Ihren package-lock.json Status, der mit npm
erzeugt wurde, in Yarn importieren, indem Sie yarn import
verwenden.
Andere Entwickler im Projekt können weiterhin npm
verwenden, so dass Sie nicht alle in Ihrem Projekt dazu bringen müssen, zur gleichen Zeit zu konvertieren. Die Entwickler, die yarn
verwenden, werden alle genau die gleiche Konfiguration erhalten, und die Entwickler, die npm
verwenden, können leicht unterschiedliche Konfigurationen erhalten, was das beabsichtigte Verhalten von npm
ist.
Wenn Sie sich später entscheiden, dass Yarn nichts für Sie ist, können Sie einfach zu npm
zurückkehren, ohne besondere Änderungen vorzunehmen. Sie können Ihre alte yarn.lock
-Datei löschen, wenn niemand im Projekt mehr Yarn benutzt, aber das ist nicht notwendig.
Wenn Sie jetzt eine npm-shrinkwrap.json
-Datei benutzen, sollten Sie sich darüber im Klaren sein, dass Sie am Ende einen anderen Satz von Abhängigkeiten haben könnten. Yarn unterstützt keine npmshrinkwrap-Dateien, da sie nicht genügend Informationen enthalten, um den deterministischen Algorithmus von Yarn zu unterstützen. Wenn Sie eine Shrinkwrap-Datei verwenden, kann es einfacher sein, alle an dem Projekt arbeitenden Personen gleichzeitig auf Yarn umzustellen. Entfernen Sie einfach Ihre bestehende npm-shrinkwrap.json
-Datei und checken Sie die neu erstellte yarn.lock
-Datei ein.
CLI-Befehle im Vergleich
npm (v5) | Yarn |
---|---|
npm install |
yarn add |
(N/A) | yarn add --flat |
(N/A) | yarn add --har |
npm install --no-package-lock |
yarn add --no-lockfile |
(N/A) | yarn add --pure-lockfile |
npm install --save |
yarn add |
npm install --save-dev |
yarn add --dev |
(N/A) | yarn add --peer |
npm install --save-optional |
yarn add --optional |
npm install --save-exact |
yarn add --exact |
(N/A) | yarn add --tilde |
npm install --global |
yarn global add |
npm update --global |
yarn global upgrade |
npm rebuild |
yarn add --force |
npm uninstall |
yarn remove |
npm cache clean |
yarn cache clean |
rm -rf node_modules && npm install |
yarn upgrade |
npm version major |
yarn version --major |
npm version minor |
yarn version --minor |
npm version patch |
yarn version --patch |