Einführung in die NPM-Nutzung
NPM (Node Package Manager) ist ein JavaScript-Paketverwaltungswerkzeug und der Standard-Paketmanager für Node.js.
NPM ermöglicht Entwicklern, Projektabhängigkeiten und Tools einfach herunterzuladen, zu installieren, zu teilen und zu verwalten.
NPM ist ein mit Node.js gebündeltes Paketverwaltungswerkzeug. Daher müssen Sie normalerweise nur Node.js installieren, und NPM wird automatisch auf Ihrem System installiert.

Hauptfunktionen:
Paketverwaltung: NPM hilft Ihnen, verschiedene von Ihrem Projekt benötigte Bibliotheken von Drittanbietern (Pakete) zu installieren und zu verwalten. Zum Beispiel können Sie Abhängigkeiten mit einfachen Befehlen installieren, aktualisieren oder löschen.
Versionsverwaltung: NPM unterstützt Versionskontrolle, sodass Sie eine bestimmte Version einer Abhängigkeit sperren oder je nach Bedarf die neueste Version auswählen können.
Paketveröffentlichung: NPM ermöglicht Entwicklern, ihre eigenen Bibliotheken in der NPM-Registry zu veröffentlichen, und andere Entwickler können diese Bibliotheken über NPM herunterladen und verwenden.
Kommandozeilenwerkzeug: NPM bietet ein leistungsstarkes Kommandozeilenwerkzeug, das für verschiedene Operationen wie das Installieren von Paketen, das Ausführen von Skripten, das Initialisieren von Projekten und mehr verwendet werden kann.
Da die neueste Version von Node.js NPM bereits enthält, können wir es direkt testen, indem wirnpm -veingeben, um zu prüfen, ob es erfolgreich installiert wurde. Wenn eine Versionsanzeige erscheint, war die Installation erfolgreich:
$ npm -v 2.3.0
Wenn Sie eine ältere Version von npm installiert haben, können Sie sie einfach mit dem npm-Befehl aktualisieren. Der Befehl lautet wie folgt:
$ sudo npm install npm -g /usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js [email protected] /usr/local/lib/node_modules/npm
Wenn Sie ein Windows-System verwenden, können Sie den folgenden Befehl verwenden:
npm install npm -g
Verwendung von npm-Befehlen zum Installieren von Modulen
Die Syntax für npm zum Installieren eines Node.js-Moduls lautet wie folgt:
$ npm install <Module Name>
Im folgenden Beispiel verwenden wir den npm-Befehl, um ein gängiges Node.js-Webframework-Modul zu installieren.express:
$ npm install express
Nach der Installation wird das express-Paket im Verzeichnis node_modules unter dem Projektverzeichnis abgelegt. Daher müssen Sie in Ihrem Code nurrequire('express')auf diese Weise verwenden; es ist nicht nötig, den Pfad zum Drittanbieterpaket anzugeben.
var express = require('express');
Globale Installation vs. lokale Installation
Die npm-Paketinstallation wird in zwei Arten unterteilt: lokale Installation und globale Installation. Aus Sicht der Kommandozeile ist der einzige Unterschied, ob ein-gParameter vorhanden ist.
Lokale Installation:Installiert das Paket im Verzeichnis node_modules und speichert die Informationen im dependencies-Feld in package.json.
npm install express # 本地安装
Globale Installation:Wird verwendet, um Befehlszeilentools oder Pakete zu installieren, die in mehreren Projekten verwendet werden müssen.
npm install express -g # 全局安装
Wenn der folgende Fehler auftritt:
npm err! Error: connect ECONNREFUSED 127.0.0.1:8087
Die Lösung ist:
$ npm config set proxy null
Lokale Installation
-
Geltungsbereich: Standardmäßig installiert npm das Paket im
node_modulesOrdner des aktuellen Projekts. Das bedeutet, jedes Projekt, das das Paket verwendet, hat seine eigene Kopie des Pakets. -
Zweck: Die lokale Installation wird typischerweise für Projektabhängigkeiten verwendet. Jedes Projekt kann seine eigenen Abhängigkeitsversionen haben, was dazu beiträgt, Projektstabilität und Reproduzierbarkeit sicherzustellen.
-
Installationsbefehl: Im Projektverzeichnis ausführen
npm install <package-name>installiert das Paket in dennode_modulesOrdner, undpackage.jsonfügt die Abhängigkeit zur Datei hinzu. -
Versionsverwaltung: Über die
package.jsonundpackage-lock.jsonDatei können Sie Abhängigkeitsversionen verwalten, um Konsistenz über verschiedene Umgebungen hinweg sicherzustellen.
Globale Installation
-
Geltungsbereich: Die globale Installation installiert Pakete in einem Verzeichnis auf Systemebene, normalerweise
/usr/local/bin(unter Unix-ähnlichen Systemen) oder%AppData%\npm(unter Windows). -
Zweck: Die globale Installation wird für Tools oder Kommandozeilen-Dienstprogramme verwendet, die nicht in jedem Projekt wiederholt installiert werden müssen. Zum Beispiel die Installation eines globalen
create-react-appkann verwendet werden, um neue React-Projekte zu erstellen. -
Installationsbefehl: Verwenden Sie den
-gFlag, um Pakete global zu installieren, zum Beispielnpm install -g <package-name>。 -
Versionsverwaltung: Die Versionen global installierter Pakete werden von npm verwaltet, aber sie werden nicht
package.jsonim Projekt widergespiegelt. Das bedeutet, global installierte Pakete können zwischen verschiedenen Projekten gemeinsam genutzt werden, aber sie können auch aufgrund von Versionskonflikten Probleme verursachen.
| Funktionen | Lokale Installation | Globale Installation |
|---|---|---|
| Installationsumfang | Nur im aktuellen Projekt verfügbar | In der systemweiten globalen Umgebung verfügbar |
| Befehlsverwendung | npm install package-name | npm install -g package-name |
| Installationsort | node_modulesVerzeichnis sichern | Systemweites globales Verzeichnis (variiert je nach Betriebssystem) |
| Anwendungsfälle | Projektabhängigkeiten (Bibliotheken, Frameworks) | CLI-Tools, Projektgeneratoren |
| Zugriffsmethode | Durchrequire()oderimportusing | Direkt in der Befehlszeile verwendet |
| Abhängigkeitsdeklaration | Inpackage.jsoneingetragen in | notpackage.jsoneingetragen in |
| Versionskontrolle | In verschiedenen Projekten können unterschiedliche Versionen verwendet werden | Im System wird nur eine Version vorgehalten |
| Berechtigungsprobleme | Keine speziellen Berechtigungen erforderlich | Erfordert möglicherweise Administratorberechtigungen |
Wenn Sie beide Funktionalitäten haben möchten, müssen Sie es an beiden Stellen installieren oder verwenden Sienpm link。
Als Nächstes werden wir express global installieren
$ npm install express -g
Der Installationsvorgang gibt den folgenden Inhalt aus; die erste Zeile zeigt die Versionsnummer und den Installationsort des Moduls.
[email protected] node_modules/express ├── [email protected] ├── [email protected] ├── [email protected] ├── [email protected] ├── [email protected] ├── [email protected] ├── [email protected] ├── [email protected] ├── [email protected] ├── [email protected] ├── [email protected] ├── [email protected] ├── [email protected] ├── [email protected] ├── [email protected] ├── [email protected] ├── [email protected] ├── [email protected] ├── [email protected] ([email protected]) ├── [email protected] ([email protected]) ├── [email protected] ([email protected], [email protected]) ├── [email protected] ([email protected]) ├── [email protected] ([email protected], [email protected]) ├── [email protected] ([email protected], [email protected]) └── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected])
Installierte Informationen anzeigen
Mit dem folgenden Befehl können Sie alle global installierten Module anzeigen:
$ npm list -g ├─┬ [email protected] │ ├── [email protected] │ ├── [email protected] │ ├── [email protected] │ ├─┬ [email protected] │ │ └── [email protected] │ ├─┬ [email protected] │ │ └── [email protected] ……
Um die Versionsnummer eines bestimmten Moduls anzuzeigen, können Sie den folgenden Befehl verwenden:
$ npm list grunt projectName@projectVersion /path/to/project/folder └── [email protected]
Module deinstallieren
Wir können den folgenden Befehl verwenden, um ein Node.js-Modul zu deinstallieren.
$ npm uninstall express
Nach der Deinstallation können Sie zum Verzeichnis /node_modules/ gehen, um zu prüfen, ob das Paket noch existiert, oder den folgenden Befehl zur Überprüfung verwenden:
$ npm ls
Module aktualisieren
Wir können den folgenden Befehl verwenden, um ein Modul zu aktualisieren:
$ npm update express
Module suchen
Verwenden Sie Folgendes, um nach Modulen zu suchen:
$ npm search express
Module erstellen
Um ein Modul zu erstellen, ist die Datei package.json unerlässlich. Wir können NPM verwenden, um eine package.json-Datei zu generieren, und die generierte Datei enthält das grundlegende Ergebnis.
$ npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.
See `npm help json` for definitive documentation on these fields
and exactly what they do.
Use `npm install <pkg> --save` afterwards to install a package and
save it as a dependency in the package.json file.
Press ^C at any time to quit.
name: (node_modules) example # 模块名
version: (1.0.0)
description: Node.js 测试模块(www.example.com) # 描述
entry point: (index.js)
test command: make test
git repository: https://github.com/example/example.git # Github 地址
keywords:
author:
license: (ISC)
About to write to ……/node_modules/package.json: # 生成地址
{
"name": "example",
"version": "1.0.0",
"description": "Node.js 测试模块(www.example.com)",
……
}
Is this ok? (yes) yes
Sie müssen die oben genannten Informationen entsprechend Ihrer eigenen Situation eingeben. Nachdem Sie am Ende "yes" eingegeben haben, wird eine package.json-Datei generiert.
Als Nächstes können wir den folgenden Befehl verwenden, um einen Benutzer in der npm-Registry zu registrieren (Registrierung mit einer E-Mail-Adresse):
$ npm adduser Username: mcmohd Password: Email: (this IS public) [email protected]
Als Nächstes verwenden wir den folgenden Befehl, um das Modul zu veröffentlichen:
$ npm publish
Wenn alle oben genannten Schritte korrekt ausgeführt wurden, können Sie npm verwenden, um es genau wie andere Module zu installieren.
Versionsnummer
Wenn Sie NPM zum Herunterladen und Veröffentlichen von Code verwenden, werden Sie auf Versionsnummern stoßen. NPM verwendet semantische Versionsnummern zur Verwaltung von Code. Hier ist eine kurze Einführung.
Versionsnummern folgen der semantischen Versionierung (SemVer) mit dem Format MAJOR.MINOR.PATCH und können zusätzliche Labels tragen.
- MAJOR (Hauptversion): Wird erhöht, wenn Sie inkompatible API-Änderungen vornehmen. Zum Beispiel:
2.0.0。 - MINOR (Nebenversion): Wird erhöht, wenn Sie neue Funktionalität hinzufügen und dabei die Abwärtskompatibilität wahren. Zum Beispiel:
1.1.0。 - PATCH (Patch-Version): Wird erhöht, wenn Sie Fehler beheben, ohne neue Funktionalität hinzuzufügen. Zum Beispiel:
1.0.1。
Zusätzliche Labels
- Vorabversion: wie zum Beispiel
1.0.0-alphaoder1.0.0-beta.1, was bedeutet, dass diese Version noch getestet wird. - Build-Metadaten: wie zum Beispiel
1.0.0+build.1, das Informationen über den Build bereitstellt.
Installationsbeispiele
- Eine bestimmte Version installieren:
npm install [email protected] - Die neueste Hauptversion installieren:
npm install package-name@^1.2.3(installiere1.x.xdie neueste Version von)
Häufige NPM-Befehle
NPM bietet viele Befehle. Du kannstnpm helpverwenden, um alle Befehle anzuzeigen.
| Befehl | Beschreibung |
|---|---|
npm init | Initialisiere eine neuepackage.jsonDatei, wobei Informationen interaktiv eingegeben werden. |
npm init -y | Erstelle schnell einepackage.jsonDatei mit Standardeinstellungen. |
npm install package-name | Installiere das angegebene Paket lokal. |
npm install -g package-name | Installiere das angegebene Paket global, sodass es systemweit verfügbar ist. |
npm install | Installationpackage.jsonalle aufgeführten Abhängigkeiten in |
npm install package-name --save-dev | Installiere ein Paket und füge es zudevDependencies。 |
npm update package-name | Aktualisiere das angegebene Abhängigkeitspaket. |
npm uninstall package-name | Deinstalliere das angegebene Abhängigkeitspaket. |
npm uninstall -g package-name | Deinstalliere das angegebene Paket global. |
npm list | Zeige die Liste der installierten Abhängigkeitspakete für das aktuelle Projekt an. |
npm list -g --depth=0 | Zeige die Liste der global installierten Abhängigkeitspakete an (ohne den Abhängigkeitsbaum aufzuklappen). |
npm info package-name | Zeige detaillierte Informationen zu einem Paket an, einschließlich Version und Abhängigkeiten. |
npm login | Melde dich bei deinem NPM-Konto an. |
npm publish | Veröffentliche das aktuelle Paket in der NPM-Registry. |
npm unpublish package-name | Veröffentlichung eines Pakets aus der NPM-Registry rückgängig machen (in der Regel auf innerhalb von 24 Stunden beschränkt). |
npm cache clean --force | Den NPM-Cache bereinigen. |
npm audit | Projektabhängigkeiten auf Sicherheitslücken prüfen. |
npm audit fix | Bekannte Sicherheitslücken automatisch beheben. |
npm run script-name | Führen Siepackage.jsondas darin definierte Skript, zum Beispielnpm run start。 |
npm start | Führen SiestartSkript (entsprichtnpm run start)。 |
npm test | Führen SietestSkript. |
npm build | Führen SiebuildSkript. |
npm outdated | Abhängigkeitspakete im Projekt auflisten, für die Updates verfügbar sind. |
npm version patch/minor/major | Updatepackage.jsondie Versionsnummer in , wobei die Version automatisch aktualisiert wird. |
npm ci | Verwenden Siepackage-lock.jsonzum schnellen Installieren von Abhängigkeiten, geeignet für CI/CD-Umgebungen. |
Neben dem, was in diesem Kapitel behandelt wird, bietet NPM viele weitere Funktionen, und package.json hat auch viele andere nützliche Felder.
Neben der Möglichkeit, die offizielle Dokumentation unterhttps://docs.npmjs.com/einzusehen, finden Sie hier einige weitere häufig verwendete NPM-Befehle.
Verwendung des Taobao-NPM-Mirrors
Da die direkte Verwendung des offiziellen npm-Mirrors in China sehr langsam ist, können wir zur Lösung dieses Problems den von Taobao bereitgestellten Mirror (cnpm oder durch Konfigurieren von NPM) verwenden, um das Herunterladen und Installieren von Paketen zu beschleunigen.
Der Taobao-NPM-Mirror ist ein vollständiger Mirror von npmjs.org. Sie können ihn verwenden, um die offizielle Version zu ersetzen (schreibgeschützt). Die Synchronisierungsfrequenz beträgt derzeit einmal alle 10 Minuten, um die Synchronisierung mit dem offiziellen Dienst so weit wie möglich sicherzustellen.
Sie können das von Taobao angepasste cnpm-Kommandozeilenwerkzeug (mit gzip-Komprimierungsunterstützung) verwenden, um das Standard-npm zu ersetzen:
$ npm install -g cnpm --registry=https://registry.npmmirror.com
Als Nächstes können wir cnpm verwenden, um npm für die Paketinstallation und -verwaltung zu ersetzen:
$ cnpm install [name]
package.json-Beschreibung und -Verwendung
package.json ist eine Kerndatei in einem Node.js-Projekt und enthält die Metadaten, Abhängigkeiten, Skripte und andere Informationen des Projekts.
Die Datei package.json wird verwendet, um die Metadaten und Abhängigkeitsbeziehungen des Projekts zu beschreiben. Sie befindet sich normalerweise im Stammverzeichnis des Projekts und dient als Konfigurationsdatei des Projekts.
Die Datei package.json ist eine Datei im JSON-Format, die die folgenden grundlegenden Felder enthält:
name: Der Name des Projekts, der eindeutig sein sollte, wobei üblicherweise Kleinbuchstaben und Bindestriche verwendet werden.version: Die Versionsnummer des Projekts, die dem Semantic Versioning folgt.description: Eine kurze Beschreibung des Projekts.main: Die Einstiegsdatei des Projekts, normalerweise die Startdatei der Anwendung.scripts: Definiert eine Reihe von Kommandozeilen-Skripten, die bestimmte Aufgaben im Projekt ausführen können.dependencies: Listet alle Abhängigkeitspakete auf, die für die Ausführung des Projekts erforderlich sind, sowie deren Versionen.devDependencies: Listet Abhängigkeitspakete und deren Versionen auf, die nur während der Entwicklung benötigt werden.peerDependencies: Listet Pakete auf, von denen das Projekt erwartet, dass seine Abhängigkeitspakete ebenfalls von ihnen abhängen.optionalDependencies: Listet optionale Abhängigkeitspakete auf.engines: Gibt die mit dem Projekt kompatible Node.js-Version an.repository: Informationen zum Code-Repository des Projekts, wie die URL des GitHub-Repositorys.keywords: Schlüsselwörter für das Projekt, hilfreich, um das Projekt in der npm-Suche zu finden.author: Informationen zum Autor des Projekts.license: Informationen zur Lizenz des Projekts.
Verwendung:
-
Projekt initialisieren: Führen Sie den
npm initBefehl im Projektverzeichnis, und npm führt Sie durch die Erstellung einerpackage.jsonDatei, oder automatisch eine erzeugenpackage.json。 -
Abhängigkeiten installieren: Verwenden Sie den
npm install <package-name>Befehl, um Abhängigkeiten zu installieren. npm fügt die Abhängigkeiten automatisch zupackage.jsonin der DateidependenciesoderdevDependenciesund erstelltpackage-lock.json-Datei, um die Abhängigkeitsversionen zu sperren. -
Skripte verwalten: Definieren Sie Befehle im
scriptsFeld, zum Beispiel"start": "node app.js", und dann können Sie dennpm startBefehl zum Ausführen dieser Skripte. -
Versionskontrolle: Verwenden Sie den
npm versionBefehl zur Verwaltung der Versionsnummer des Projekts. npm aktualisiert automatisch die Versionsnummer inpackage.jsonund erzeugt ein neues Git-Tag. -
Das Paket veröffentlichen: Wenn das Projekt bereit ist, bei npm veröffentlicht zu werden, können Sie den
npm publishBefehl verwenden, und npm liest die Informationen inpackage.json, um das Paket zu veröffentlichen. -
Abhängigkeitsverwaltung:
package.jsonundpackage-lock.jsonarbeiten mit der Datei zusammen, um konsistente Abhängigkeitsversionen in verschiedenen Umgebungen sicherzustellen.
Die typische Struktur einer package.json-Datei sieht wie folgt aus:
Beispiel
"name": "my-project",
"version": "1.0.0",
"description": "Ein einfaches Node.js-Projekt",
"main": "app.js",
"scripts": {
"start": "node app.js",
"test": "echo \"Fehler: kein Test angegeben\" && exit 1"
},
"dependencies": {
"express": "^4.17.1"
},
"devDependencies": {
"nodemon": "^2.0.20"
},
"keywords": ["node", "npm", "example"],
"author": "Ihr Name",
"license": "MIT"
}
Feldbeschreibungen:
| Feld | Beschreibung |
|---|---|
| name | Der Name des Projekts, normalerweise Kleinbuchstaben und Bindestriche. |
| version | Die Versionsnummer des Projekts, gemäßSpracheBedeutungtransformierenVersionSpezifikation (SemVer)。 |
| description | Eine kurze Beschreibung des Projekts. |
| main | Die Einstiegsdatei des Projekts, standardmäßig aufindex.js。 |
| scripts | Definiert ausführbare Skriptbefehle für das Projekt, wie zum Beispielnpm start。 |
| dependencies | Abhängigkeitsbibliotheken, die zur Laufzeit benötigt werden, bei der Installation hinzugefügt zunode_modules。 |
| devDependencies | Abhängigkeitsbibliotheken, die während der Entwicklung verwendet werden, nicht in Produktionsumgebungen installiert. |
| keywords | Ein Array von Schlüsselwörtern, hilfreich zur Beschreibung des Projekts und zum Auffinden in der NPM-Suche. |
| author | Die Autorinformationen des Projekts. |
| license | Der Lizenztyp des Projekts, wie z. B.MIT、ISC。 |
Vorteile der Verwendung von package.json
- Abhängigkeitsverwaltung: Zentrale Verwaltung der Projektabhängigkeiten und ihrer Versionen.
- Automatisierung von Aufgaben: Durch das
scriptsFeld können Sie bequem gängige Aufgaben ausführen. - Versionskontrolle: Stellen Sie die Konsistenz des Projekts und seiner Abhängigkeitsversionen sicher, um die Teamzusammenarbeit zu erleichtern.
- Beschreibung des Projekts: Stellen Sie Metadateninformationen für das Projekt bereit, um die Veröffentlichung und Weitergabe zu erleichtern.
Abhängigkeitsverwaltung
dependencies: Speichert die Abhängigkeiten, die für die Ausführung des Projekts erforderlich sind.
"dependencies": {
"express": "^4.17.1"
}
Bei der Installation von Abhängigkeiten verwenden Sie:
npm install express
devDependencies: Speichert Abhängigkeiten, die während der Projektentwicklung benötigt werden.
"devDependencies": {
"nodemon": "^2.0.20"
}Bei der Installation von Abhängigkeiten verwenden Sie:
npm install nodemon --save-dev
scripts-Feld
Das scripts-Feld wird verwendet, um Befehle zu definieren, die über npm run <script> ausgeführt werden können. Übliche Skripte umfassen:
"scripts": {
"start": "node app.js",
"test": "jest",
"build": "webpack --mode production",
"dev": "nodemon app.js"
}Beispiel für das Ausführen von Skripten:
npm run dev # 执行 "nodemon app.js" npm start # 等同于 "node app.js",可以直接用 npm start 运行
Erklärung der Symbole in Versionsnummern
^(Caret): Gibt an, dass die neueste Version installiert wird, die mit der aktuellen Hauptversion kompatibel ist. Zum Beispiel,^4.17.1installiert4.x.xdie neueste Version in .~(Tilde): Gibt an, dass die neueste Version installiert wird, die mit der aktuellen Minor-Version kompatibel ist. Zum Beispiel,~4.17.1installiert4.17.xdie neueste Version in .
Häufige Befehle
Die package.json-Datei initialisieren:
npm init
Mit npm init -y kann schnell eine Standard-package.json-Datei generiert werden.
Projektabhängigkeiten anzeigen:
npm list --depth=0
Abhängigkeiten aktualisieren:
npm update package-name
Hinweise
- Halten Sie die
package.jsonDatei prägnant und korrekt und vermeiden Sie unnötige Felder. - Verwenden Sie
package-lock.jsonum Abhängigkeitsversionen zu sperren, um die Konsistenz des Projekts über verschiedene Umgebungen hinweg sicherzustellen. - Aktualisieren Sie Abhängigkeiten regelmäßig, um die neuesten Funktionen und Sicherheitskorrekturen zu nutzen.
Weitere Informationen finden Sie unter:https://npmmirror.com/。
Weitere Erweiterungen