Vor einiger Zeit haben wir eine Anleitung zum Verwalten von Python-Paketen mit PIP veröffentlicht . Heute werden wir besprechen, wie NodeJS-Pakete mit Npm verwaltet werden. NPM ist die größte Softwareregistrierung, die über 600.000 Pakete enthält. Jeden Tag teilen und laden Entwickler auf der ganzen Welt Pakete über npm herunter. In diesem Handbuch werde ich die Grundlagen der Arbeit mit npm erklären, wie das Installieren von Paketen (lokal und global), das Installieren einer bestimmten Version eines Pakets, das Aktualisieren, Entfernen und Verwalten von NodeJS-Paketen und so weiter.
NPM installieren
Da npm in NodeJS geschrieben ist, müssen wir NodeJS installieren, um npm verwenden zu können. Informationen zur Installation von NodeJS auf verschiedenen Linux-Distributionen finden Sie unter folgendem Link.
- So installieren Sie NodeJS unter Linux
Stellen Sie nach der Installation sicher, dass NodeJS und NPM ordnungsgemäß installiert wurden. Dafür gibt es mehrere Möglichkeiten.
Führen Sie den folgenden Befehl aus, um zu überprüfen, wo der Knoten installiert wurde:
$ which node /home/sk/.nvm/versions/node/v9.4.0/bin/node
Überprüfen Sie die Version:
$ node -v v9.4.0
Melden Sie sich bei der Knoten-REPL-Sitzung an:
$ node > .help .break Sometimes you get stuck, this gets you out .clear Alias for .break .editor Enter editor mode .exit Exit the repl .help Print this help message .load Load JS from a file into the REPL session .save Save all evaluated commands in this REPL session to a file > .exit
Überprüfen Sie, wo npm installiert ist:
$ which npm /home/sk/.nvm/versions/node/v9.4.0/bin/npm
Und die Version:
$ npm -v 5.6.0
Toll! Node und NPM sind installiert und funktionieren! Wie Sie vielleicht bemerkt haben, habe ich NodeJS und NPM in meinem $HOME-Verzeichnis installiert, um Berechtigungsprobleme bei der globalen Installation von Modulen zu vermeiden. Dies ist die vom NodeJS-Team empfohlene Methode.
Sehen wir uns nun an, wie NodeJS-Module (oder -Pakete) mit npm verwaltet werden.
NodeJS-Pakete mit Npm verwalten
Installieren von NodeJS-Modulen
NodeJS-Module können entweder lokal oder global (systemweit) installiert werden. Jetzt werde ich zeigen, wie man ein Paket lokal installiert.
Pakete lokal installieren
Um Pakete lokal zu verwalten, verwenden wir normalerweise package.json Datei.
Lassen Sie uns zuerst unser Projektverzeichnis erstellen.
$ mkdir demo
$ cd demo
Erstellen Sie eine package.json-Datei im Verzeichnis Ihres Projekts. Führen Sie dazu Folgendes aus:
$ npm init
Geben Sie die Details Ihres Pakets wie Name, Version, Autor, Github-Seite usw. ein oder drücken Sie einfach die EINGABETASTE, um die Standardwerte zu akzeptieren, und geben Sie JA ein zu bestätigen.
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>` afterwards to install a package and save it as a dependency in the package.json file. Press ^C at any time to quit. package name: (demo) version: (1.0.0) description: demo nodejs app entry point: (index.js) test command: git repository: keywords: author: license: (ISC) About to write to /home/sk/demo/package.json: { "name": "demo", "version": "1.0.0", "description": "demo nodejs app", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC" } Is this ok? (yes) yes
Der obige Befehl initialisiert Ihr Projekt und erstellt die Datei package.json.
Sie können dies auch nicht interaktiv mit dem Befehl:
tun$ npm init --y
Dadurch wird schnell eine package.json-Datei mit Standardwerten ohne Benutzerinteraktion erstellt.
Lassen Sie uns nun das Paket namens commander installieren .
$ npm install commander
Beispielausgabe:
npm notice created a lockfile as package-lock.json. You should commit this file. npm WARN [email protected] No repository field. + [email protected] added 1 package in 2.519s
Dadurch wird ein Verzeichnis namens "node_modules" erstellt (falls noch nicht vorhanden) im Stammverzeichnis des Projekts und laden Sie die darin enthaltenen Pakete herunter.
Lassen Sie uns die Datei package.json überprüfen.
$ cat package.json { "name": "demo", "version": "1.0.0", "description": "demo nodejs app", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC", "dependencies": { "commander": "^2.13.0" } }
Sie werden sehen, dass die Abhängigkeiten hinzugefügt wurden. Das Caretzeichen (^ )-Symbol vor der Versionsnummer zeigt an, dass npm bei der Installation die höchste Version des Pakets abrufen wird, die es finden kann.
$ ls node_modules/ commander
Der Vorteil der Datei „package.json“ besteht darin, dass Sie, wenn Sie die Datei „package.json“ im Verzeichnis Ihres Projekts hatten, einfach „npm install“ eingeben können, dann prüft npm die in der Datei aufgeführten Abhängigkeiten und lädt sie alle herunter. Sie können es sogar mit anderen Entwicklern teilen oder in Ihr GitHub-Repository pushen, sodass sie, wenn sie „npm install“ eingeben, dieselben Pakete erhalten, die Sie haben.
Möglicherweise ist Ihnen auch eine andere JSON-Datei mit dem Namen package-lock.json aufgefallen . Diese Datei stellt sicher, dass die Abhängigkeiten auf allen Systemen, auf denen das Projekt installiert ist, gleich bleiben.
Um das installierte Paket in Ihrem Programm zu verwenden, erstellen Sie eine Datei index.js (oder einen beliebigen Namen Ihrer Wahl) im Verzeichnis des Projekts mit dem tatsächlichen Code und führen Sie ihn dann mit dem Befehl aus:
$ node index.js
Pakete global installieren
Wenn Sie ein Paket als Kommandozeilentool verwenden möchten, ist es besser, es global zu installieren. Auf diese Weise funktioniert es unabhängig davon, welches Verzeichnis Ihr aktuelles Verzeichnis ist.
$ npm install async -g + [email protected] added 2 packages in 4.695s
Oder,
$ npm install async --global
Um eine bestimmte Version eines Pakets zu installieren, gehen wir wie folgt vor:
$ npm install [email protected] --global
NodeJS-Module aktualisieren
Wechseln Sie zum Aktualisieren der lokalen Pakete in das Verzeichnis des Projekts, in dem sich die Datei „package.json“ befindet, und führen Sie Folgendes aus:
$ npm update
Führen Sie dann den folgenden Befehl aus, um sicherzustellen, dass alle Pakete aktualisiert wurden.
$ npm outdated
Wenn es kein Update gibt, wird nichts zurückgegeben.
Um herauszufinden, welche globalen Pakete aktualisiert werden müssen, führen Sie Folgendes aus:
$ npm outdated -g --depth=0
Wenn keine Ausgabe erfolgt, werden alle Pakete aktualisiert.
Um ein einzelnes globales Paket zu aktualisieren, führen Sie Folgendes aus:
$ npm update -g <package-name>
Um alle globalen Pakete zu aktualisieren, führen Sie Folgendes aus:
$ npm update -g <package>
NodeJS-Module auflisten
Um die lokalen Pakete aufzulisten, gehen Sie in das Verzeichnis des Projekts und führen Sie Folgendes aus:
$ npm list [email protected] /home/sk/demo └── [email protected]
Wie Sie sehen, habe ich das "Commander"-Paket im lokalen Modus installiert.
Um globale Pakete aufzulisten, führen Sie diesen Befehl von einem beliebigen Ort aus:
$ npm list -g
Beispielausgabe:
/home/sk/.nvm/versions/node/v9.4.0/lib ├─┬ [email protected] │ └── [email protected] └─┬ [email protected] ├── [email protected] ├── [email protected] ├── [email protected] ├── [email protected] ├── [email protected] ├── [email protected] [...]
Dieser Befehl listet alle Module und ihre Abhängigkeiten auf.
Um nur die Module der obersten Ebene aufzulisten, verwenden Sie --depth=0 Möglichkeit:
$ npm list -g --depth=0 /home/sk/.nvm/versions/node/v9.4.0/lib ├── [email protected] └── [email protected]
Durchsuchen von NodeJS-Modulen
Um nach einem Modul zu suchen, verwenden Sie den Befehl „npm search“:
npm search <search-string>
Beispiel:
$ npm search request
Dieser Befehl zeigt alle Module an, die den Suchstring "request" enthalten.
NodeJS-Module entfernen
Um ein lokales Paket zu entfernen, gehen Sie in das Verzeichnis des Projekts und führen Sie den folgenden Befehl aus, um das Paket aus Ihren node_modules zu entfernen Verzeichnis:
$ npm uninstall <package-name>
Um es aus den Abhängigkeiten in package.json zu entfernen Datei, verwenden Sie die Speichern Flagge wie unten:
$ npm uninstall --save <package-name>
Um die global installierten Pakete zu entfernen, führen Sie Folgendes aus:
$ npm uninstall -g <package>
NPM-Cache leeren
Standardmäßig speichert NPM die Kopie eines installierten Pakets im Cache-Ordner namens npm in Ihrem $HOME-Verzeichnis, wenn es installiert wird. So können Sie es beim nächsten Mal installieren, ohne es erneut herunterladen zu müssen.
So zeigen Sie die zwischengespeicherten Module an:
$ ls ~/.npm
Der Cache-Ordner wird im Laufe der Zeit mit allen alten Paketen überflutet. Es ist besser, den Cache von Zeit zu Zeit zu leeren.
Ab [email protected] behebt sich der npm-Cache selbst bei Beschädigungsproblemen, und aus dem Cache extrahierte Daten sind garantiert gültig. Wenn Sie sicherstellen möchten, dass alles konsistent ist, führen Sie Folgendes aus:
$ npm cache verify
Um den gesamten Cache zu leeren, führen Sie Folgendes aus:
$ npm cache clean --force
NPM-Konfiguration anzeigen
Um die npm-Konfiguration anzuzeigen, geben Sie Folgendes ein:
$ npm config list
Oder,
$ npm config ls
Beispielausgabe:
; cli configs metrics-registry = "https://registry.npmjs.org/" scope = "" user-agent = "npm/5.6.0 node/v9.4.0 linux x64" ; node bin location = /home/sk/.nvm/versions/node/v9.4.0/bin/node ; cwd = /home/sk ; HOME = /home/sk ; "npm config ls -l" to show all defaults.
So zeigen Sie den aktuellen globalen Standort an:
$ npm config get prefix /home/sk/.nvm/versions/node/v9.4.0
Und das ist alles für jetzt. Was wir hier gerade behandelt haben, sind nur die Grundlagen. NPM ist ein weites Feld. Weitere Einzelheiten finden Sie in den NPM-Erste Schritte Anleitung.