Dieser Artikel führt Sie durch die beiden leistungsstarken Paketmanager von Node.js: npm und Yarn. Ich hoffe, er wird Ihnen hilfreich sein!
Node.js-Schnelleinführungskurs: Geben Sie ein, um zu lernen
Der erste Schritt zum Erlernen Node
besteht darin, den Paketmanager von Node zu verstehen: npm
. Ich glaube, jeder ist mit npm
vertraut, da wir es häufig zum Herunterladen einiger Paketressourcen verwenden.
Da sich die Ressourcenbibliothek von npm
(https://www.npmjs.com/) jedoch im Ausland befindet, ist die Geschwindigkeit beim Herunterladen von Ressourcen relativ langsam, sodass node包管理器
von Drittanbietern wie yarn
und Inland mit npm
synchronisiert werden Lagerhäuser. Aktualisierter Taobao-Spiegel (cnpm)
Als nächstes lernen wir diese Inhalte eingehend kennen, fangen wir an!
Die Kolumne der Node-Serie wurde aktualisiert. Folgen Sie dem Blogger, abonnieren Sie die Kolumne und lernen Sie Node kennen, ohne sich zu verlaufen!
Was ist NPM?
Bevor Sie npm
verwenden, müssen Sie zunächst verstehen, was npm
ist. Im ersten Artikel der Node-Reihe wird erwähnt, npm
um das Open-Source-Warehouse von Node
handelt und ist das größte Open-Source-Warehouse der Welt
Die Adresse dieses Lagers lautet: https://www.npmjs.com/
Mit Stand vom 17. März 2020 lieferte npm
1,3 Millionen Pakete an etwa 12 Millionen Entwickler, die diese 75 Milliarden Mal pro Monat herunterluden
Um die Ressourcen im npm
Warehouse herunterzuladen und zu verwenden, können Sie npm的指令
verwenden (beginnend mit npm
, z. B. npm i axios
download axios
) oder andere Anweisungen von Drittanbietern ( Node包管理器
von Drittanbietern), z. B. Garn usw .
Offizielle Aussage:
npm
ist ein Paketverwaltungs- und Verteilungstool fürNodeJS
Die Paketverwaltung spiegelt sich darin wider, dass es sich um ein
NodeJS
-Warehouse handelt, das verschiedeneNodeJS
-Softwarepakete speichert und verwaltet.Das Verteilungstool besteht darin,
npm的指令
zum Herunterladen von Paketen imnpm
-Warehouse zu verwenden.
Wenn wir die NodeJS
-Umgebung konfigurieren, wird npm指令模块
zusammen mit NodeJS
installiert. Wir können npm -v
über das Terminal ausführen, um die installierte Version anzuzeigen:
Wenn die standardmäßig installierte npm
Version jedoch zu alt ist, können Sie npm auch manuell selbst installieren und aktualisieren :
npm i npm@latest -g
@latest
steht für die Installation der neuesten Version,-g
steht für die globale Installation. Diesenpm
-Anweisungen werden später besprochen.
Eine magische Sache finden Sie oben. Wir installieren npm
über npm
.
Das ist eigentlich leicht zu verstehen. npm的指令模块
ist auch als Paket im npm
-Warehouse gespeichert, und der Name dieses Pakets lautet npm
. Siehe die npm
-Adresse.
Was wir also allgemein als npm bezeichnen, bezieht sich lediglich auf das Befehlsmodul von npm (das Paket mit dem Namen npm).
Tatsächlich bezieht sich das Wort
npm
jedoch aufnpm指令模块
und auch aufnpm
dasNodeJS
Open-Source-Warehouse selbst. Daher laden wirnpm
innpm
herunter (dieses npm stellt das Open-Source-Warehouse von NodeJS dar) (dieses npm stellt das Offene dar). Quelllager mit dem Namen npm Dieses Paket, dieses Paket ist das Befehlsmodul von npm)
Allgemeine npm-Befehle
Es gibt viele
npm
Anweisungen. Hier listen wir nur die häufig verwendeten auf. Weitere Informationen finden Sie in der offiziellen NPM-Dokumentation.
npm init
: package.json
generieren
npm install
: Laden Sie alle in package.json
aufgezeichneten Ressourcen herunter
npm install 包名
: Laden Sie das angegebene Paket in das aktuelle Verzeichnis herunter
npm uninstall 包名
: Deinstallieren Sie das angegebene Paket im aktuellen Verzeichnis
npm update 包名
: Aktualisieren Sie das angegebene Paket im aktuellen Verzeichnis. Wenn kein Paketname hinzugefügt wird, werden alle Pakete im aktuellen Verzeichnis aktualisiert.
npm outdated 包名
: Überprüfen Sie, ob das angegebene Paket im aktuellen Verzeichnis veraltet ist . Wenn kein Paketname hinzugefügt wird, werden alle Pakete im aktuellen Verzeichnis überprüft.
npm info 包名
: Erhalten Sie detaillierte Informationen zum Paket im aktuellen Verzeichnis
npm list
: Zeigt alle im aktuellen Verzeichnis installierten Pakete und ihre Abhängigkeiten an und zeigt die Versionsnummer an ( list
kann als ls
abgekürzt werden).
npm list 包名
: Zeigt die Versionsnummer des angegebenen Pakets an, das im aktuellen Verzeichnis installiert ist ( list
kann als ls
abgekürzt werden).
Noch ein paar zusätzliche Punkte:
install
kann als i
abgekürzt werden, wie zum Beispiel: npm install axios
kann als npm i axios
abgekürzt werden
uninstall
kann als un
abgekürzt werden
Fügen Sie das @
-Symbol nach dem Paketnamen hinzu, um die Version des Pakets anzugeben, z. B.: npm i md5@1
lädt Version 1 von md5 herunter, npm i md5@latest
bedeutet, dass die neueste Version von md5 heruntergeladen wird
npm
Befehlssuffix
-g
: Geben Sie die globale Umgebung an
Der Befehl
npm
arbeitet standardmäßig im aktuellen Verzeichnis. Durch Hinzufügen von-g
wird der Betrieb in der globalen Umgebung festgelegt. Installieren Sie wie oben erwähnt die neueste Version von npm:npm i npm@latest -g
, damit npm in jedem Verzeichnis verwendet werden kann .
--save
kann als -s
abgekürzt werden : Abhängigkeiten in der Produktionsumgebung angeben (aufgezeichnet in dependencies
)
Nach
npm5
Version lautet der Standardwert--save
. Axios muss beispielsweise sowohl in der Produktionsumgebung als auch in der Entwicklungsumgebung installiert werden:npm i axios -s
--save-dev
kann als -D
abgekürzt werden : Geben Sie die Abhängigkeiten in der Entwicklungsumgebung an (aufgezeichnet in devDependencies
).
So installieren Sie Babel, das in der Produktionsumgebung nicht benötigt wird (wird nur in der Entwicklungsumgebung verwendet):
npm i babel -D
--save-prod
kann als -P
abgekürzt werden : dasselbe wie --save
--save-optional
kann als -O
abgekürzt werden : optionale Abhängigkeiten angeben (aufgezeichnet in optionalDependencies
)
--no-save
: wird nicht in package.json
aufgezeichnet
Informationen zu den spezifischen Funktionen und Unterschieden von
-g,--save,--save-dev
finden Sie in meinem Artikel: Der Unterschied zwischen npm install -g/–save/–save-dev
Das npm-Befehlssuffix kann auch vor dem Paketnamen platziert werden:
npm i -g npm@latest
Verwaltung von Abhängigkeitspaketen
In npm
sind die bekannten Abhängigkeiten: dependencies
und devDependencies
Darüber hinaus umfasst es tatsächlich:
peerDependencies
,
optionalDependencies
bundledDependencies / bundleDependencies
Mehrere Abhängigkeiten, darunter diese, werden in package.json
aufgezeichnet:
Oben haben wir diese Abhängigkeiten erwähnt, als wir über npm-Befehlssuffixe gesprochen haben. Hier finden Sie eine detaillierte Beschreibung ihrer Bedeutung:
dependencies
und devDependencies
Schauen Sie sich meinen anderen Artikel an: Der Unterschied zwischen npm install -g/–save/–save-dev
peerDependencies
Sie können sich den Artikel des Großen ansehen: PeerDependencies in einem Artikel verstehen
optionalDependencies
Optionale Abhängigkeiten. Wenn es einige abhängige Pakete gibt, die auch dann noch ausgeführt werden können, wenn die Installation fehlschlägt oder Sie möchten, dass npm weiterhin ausgeführt wird, können Sie
optionalDependencies
verwenden. Darüber hinaus werdenoptionalDependencies
die Abhängigkeiten mit demselben Namen independencies
überschreiben Schreiben Sie sie an beiden Stellen.
bundledDependencies
/ bundleDependencies
Paketabhängigkeiten,
bundledDependencies
ist ein Array-Objekt, das abhängige Paketnamen enthält. Beim Veröffentlichen werden die Pakete in diesem Objekt in das endgültige Release-Paket gepackt. Die Pakete im Array müssen zuerst indevDependencies
oderdependencies
deklariert werden, andernfalls meldet das Paket ein Fehler.
Probleme mit der Paketversion, die in package.json beachtet werden müssen
Die Versionsinformationen aller über npm
heruntergeladenen Pakete werden in package.json
aufgezeichnet
Beim Ausführen npm i
wird es basierend auf den in package.json
aufgezeichneten Paketinformationen heruntergeladen. Die Download-Regeln lauten wie folgt:
Wenn die Paketversion mit ^
(Standard) beginnt , wird die große Version gesperrt
// package.json "Abhängigkeiten": { "md5": "^2.1.0" // } beginnend mit ^,
Über
npm i
wird die neueste Version vonmd5
2.xx
(die neueste Version unter den beiden Hauptversionen) installiert, die nicht unbedingt 2.1.0 ist, sondern möglicherweise auch 2.3.0
Wenn die Paketversion mit ~
beginnt , wird sie an die zweite Hauptversion gebunden
// package.json "Abhängigkeiten": { „md5“: „~2.1.0“ },
Über
npm i
die neueste Version vonmd5
2.1.x
(die neueste Version unter Version 2.1) installieren, die nicht unbedingt 2.1.0 ist, sondern möglicherweise auch 2.1.1
Die Paketversion ist *
und wird auf die neueste Version beschränkt
// package.json "Abhängigkeiten": { „md5“: „*“ },
Über
npm i
die neueste Version vonmd5
installieren
Wenn vor der Paketversion kein Präfix steht , wird sie auf die angegebene Version beschränkt.
// package.json "Abhängigkeiten": { „md5“: „2.1.0“ },
Über
npm i
Version 2.1.0 vonmd5
installieren
Lösen Sie das Problem der langsamen NPM-Geschwindigkeit
Da sich das npm
Lager im Ausland befindet, ist es für uns langsamer, den Inhalt dieses ausländischen Lagers mit dem npm
-Befehl in China herunterzuladen.
Zu diesem Zeitpunkt können wir den folgenden Befehl ausführen, um die npm
Warehouse-Quelle auf die inländische Taobao-Image-Quelle (CNPM) umzustellen:
NPM-Konfigurationssatz-Registrierung https://registry.npmmirror.com
Verwenden Sie npm config get registry
um die aktuelle Quelle anzuzeigen:
Wenn Sie npm
in Zukunft verwenden, wird es automatisch aus dem inländischen Taobao-Spiegellager heruntergeladen und die Geschwindigkeit ist sehr hoch.
Die vorherige Quelladresse des Taobao-Spiegels war http://registry.npm.taobao.org, jetzt wurde sie in http://registry.npmmirror.com geändert. Details anzeigen
Aber es wird für uns zwangsläufig etwas mühsam sein, die Quelle durch Ändern der npm
-Konfiguration zu wechseln. Wir können einen nrm
global installieren, um uns dabei zu helfen, npm
Quelle schnell zu wechseln.
Verwenden Sie nrm, um schnell zwischen NPM-Quellen zu wechseln
NRM global installieren :
npm install -g Nrm
Führen Sie nrm ls
aus, um umschaltbare NPM-Quellen anzuzeigen :
Verwenden Sie npm use
, um die Quelle zu wechseln , z. B. den Wechsel zur Taobao-Quelle: nrm use taobao
Verwenden Sie nrm test 源名
um die Antwortzeit der entsprechenden Quelle zu testen:
Sie können sehen, dass die Reaktionsgeschwindigkeit der Taobao-Quelle viel schneller ist als die der Standardquelle von npm
.
Chinesischer NPM-Spiegel: cnpm
cnpm
ist ein vollständiger npmjs.org-Spiegel, der anstelle der offiziellen Version verwendet werden kann
Die Synchronisierungsfrequenz zwischen
cnpm
und der offiziellen Version beträgt einmal alle 10 Minuten, offizielle Website von cnpm
cnpm
herunterladen:
npm install -g cnpm --registry=https://registry.npmmirror.com
cnpm ist der Taobao-Spiegel . Wenn wir die Taobao- Spiegelquelle oben verwenden, ändern wir einfach die Quelle von npm
in die Quelle des Taobao-Spiegels ( cnpm
) (diese Quelle bezieht sich tatsächlich auf die Adresse des Lagers) und verwenden sie dann durch der npm
Befehl.
Und hier können Sie das vollständige Bild von cnpm
direkt herunterladen . Anschließend können Sie cnpm
anstelle des Befehls npm
verwenden:
cnpm installcnpm i axios -g // ....
Die Anweisungen von
cnpm
sind genau die gleichen wie die vonnpm
. Verwenden Sie bei der Verwendung einfach cnpm anstelle von npm .
Yarn ist ein von Facebook veröffentlichtes Abhängigkeitsmanagement-Tool, das schneller und effizienter als npm
ist
Installieren:
npm install -g Garn
Garn aktualisieren:
Garnset-Version aktuell Garnset-Version aus Quellen
Vorteil
super schnell
yarn
speichert jedes heruntergeladene Paket zwischen, sodass es nicht erneut heruntergeladen werden muss, wenn es erneut verwendet wird. Nutzt außerdem parallele Downloads, um die Ressourcennutzung zu maximieren, sodass Installationen schneller sind
Super sicher <br/> Vor der Ausführung des Codes überprüft yarn
die Integrität jedes Installationspakets durch einen Algorithmus
Allgemeine Garnanleitungen
yarn init
: Initialisieren Sie das Projekt und generieren Sie die Datei package.json
. Die Generierungsschritte sind ungefähr die gleichen wie bei npm init
yarn help
: Befehlsliste anzeigen
yarn install
: Laden Sie alle in package.json
aufgezeichneten Ressourcen herunter, die als yarn
abgekürzt werden können
yarn add 包名
: Laden Sie das angegebene Paket in das aktuelle Verzeichnis herunter
yarn remove 包名
: Deinstallieren Sie das angegebene Paket im aktuellen Verzeichnis
yarn upgrade 包名
: Aktualisieren Sie das angegebene Paket im aktuellen Verzeichnis. Sie können nach dem Paketnamen die @指定版本号
hinzufügen, um die Version anzugeben, die aktualisiert werden muss.
yarn
--dev
: Geben Sie Abhängigkeiten in der Entwicklungsumgebung an ( devDependencies
), abgekürzt als -D
--peer
: Kernabhängigkeiten angeben ( peerDependencies
)
--optional
: Geben Sie optionale Abhängigkeiten an ( optionalDependencies
)
In diesem Artikel werden npm
und yarn
sowie von npm abgeleitete nrm
, cnpm
usw. vorgestellt
Blogger verwenden zum Wechseln der Quellen eine Kombination aus npm + nrm , da dies nicht nur eine hohe Geschwindigkeit gewährleistet, sondern auch einen bequemen Quellenwechsel ermöglicht, ohne dass zusätzliche Pakete wie cnpm
und yarn
Sowohl npm
als auch yarn
enthalten viele Inhalte. In diesem Artikel werden nur die am häufigsten verwendeten Inhalte erläutert. Wenn Sie mehr wissen möchten, können Sie diese auf der entsprechenden offiziellen Website anzeigen.