Node.js ist eine quelloffene, plattformübergreifende JavaScript-Laufzeitumgebung. In den letzten Jahren hat sie sich aufgrund ihrer schnellen Input/Output (I/O)-Leistung und ihrer unschlagbaren JavaScript-Syntax zu einer beliebten Wahl für die Back-End-Webentwicklung entwickelt. Zudem ermöglicht ihre anpassungsfähige Natur eine schnelle Personalisierung, wodurch sich diese Servertechnologie von ihren Mitbewerbern abhebt.
Node.js Package Manager — Ein Überblick
Node.js Package Manager oder npm ist der Standard-Paketmanager für JavaScript. Npm wird häufig verwendet, um Projektskripte zu installieren und externe Module in einem Node.js-Projekt zu betreiben. Außerdem behält es den Überblick über die in einem Projekt installierten Module mithilfe der package.json-Datei, die sich im Verzeichnis des Projekts befindet. Npm speichert und protokolliert die folgenden Informationen:
- Für ein Projekt erforderliche Module und deren installierte Versionen, falls vorhanden.
- Metadatenbeschreibung eines Projekts, die unter anderem Details zum Autor und zur Lizenz enthält.
- Ausführbare Skripte zur Automatisierung projektbezogener oder zielorientierter Aufgaben.
In diesem Tutorial führen wir Sie durch die Schritte zur Verwendung von Node.js-Modulen mit npm und package.json.
Legen wir los!
Voraussetzungen
Um diesem Tutorial folgen zu können, benötigen Sie Folgendes:
- Node.js muss auf Ihrem System installiert sein.
- Folgen Sie den Schritten, um Node.js auf Ubuntu 18.04 zu installieren
-
Die neueste Version von Ubuntu installiert auf Ihrem System.
Schritt 1: Erstellen einer package.json-Datei
Beginnen wir unser Tutorial mit dem Beispiel eines Dummy-Projekts, das das Node.js- locator-Modul verwendet. Das Projekt zielt darauf ab, die IP-Adresse des Benutzers zu erfassen und das Herkunftsland des Benutzers als Ausgabe auszugeben. Da wir uns darauf konzentrieren, die Verwendung von Node.js-Modulen mit npm zu verstehen, müssen die Module nicht manuell geschrieben werden. Stattdessen verwenden wir die vorinstallierten und anpassbaren Pakete in unserem Projekt.
JSON oder JavaScript Object Notation ist ein Standardformat, das für den Austausch und die Übertragung von Daten verwendet wird. Zunächst erstellen wir eine JSON-Datei, die Software-Abhängigkeiten speichert und verwaltet. Das manuelle Erstellen einer package.json ist jedoch mühsam und zeitaufwendig. Der Einfachheit halber verwenden wir den Befehl init, um die Datei package.json zu erstellen, anstatt zusätzlichen Code zu schreiben, um unsere JSON von Grund auf neu zu erstellen.
-
init-Befehl
Erstellen wir zunächst einen neuen Ordner mit dem Befehl mkdir und nennen ihn locator:
|
1 |
mkdir locator |
Verwenden Sie als Nächstes den Befehl cd, um in den neu erstellten Ordner zu wechseln:
|
1 |
cd locator |
Geben Sie dann ENTER npm ein, um die interaktive Eingabeaufforderung zu initialisieren:
|
1 |
npm init |
Danach sehen Sie die Ausgabe:

1. name
Sie werden zum Namen Ihres neuen Projekts weitergeleitet; dem aktuellen Ordner. Sie sehen die Standardwerte in Klammern (). Um dieses Tutorial einfach und leicht verständlich zu halten, übernehmen wir die Standardoptionen. Drücken Sie ENTER, um zu akzeptieren und fortzufahren.
2. version
Der nächste Wert ist der Versions-name, was eine wichtige Voraussetzung ist, wenn Sie Ihr Projekt im npm-Paket-Repository teilen.
|
Note: Node.js-Pakete folgen dem Semantic Versioning-Leitfaden (semver). First number: The MAJOR-Version, und sie ändert sich nur, wenn sich die API ändert. Second Number: The MINOR-Version, die sich ändert, wenn zusätzliche Funktionen hinzugefügt werden. Last number: The PATCH-Version, die sich ändert, wenn ein Fehler oder Bug behoben wird. |
3. description
Die Beschreibung ist eine informative Zeichenfolge, die die Funktionsweise des Node.js-Moduls beschreibt. In unserer Demo wird das locator-Projekt die IP-Adresse des Benutzers abrufen und das Herkunftsland zurückgeben.
|
Note: Meistens haben Module eine index.js-Datei als Einstiegspunkt. Dies ist auch die main-Eigenschaft von package.json, dem Einstiegspunkt für npm-Module. Wenn jedoch package.json nicht gefunden wird, lädt Node.js will load index.js automatisch. |
4. test -Befehl
Es ist ein ausführbares Skript oder ein Befehl, um Ihre Projekttests auszuführen. Da das Testen den Rahmen unseres Tutorials sprengt, überspringen wir es und drücken ENTER.
5. init-Befehl
Der init-Befehl fragt nach dem GitHub-Repository des Projekts. Lassen Sie uns auch diesen Teil überspringen und fortfahren.
6. keywords
Schlüsselwörter sind ein Array von Strings, die zur Suche nach einem Repository verwendet werden. Es wird empfohlen, die Keywords präzise und relevant für Ihr Projekt zu halten, damit sie nahtlos nachverfolgbar sind.
Listen Sie diese Keywords als Strings auf und trennen Sie sie durch Kommas. Geben Sie in unserem Projekt ip, country, latitude, und longitude bei der Eingabeaufforderung ein und Sie werden sehen, dass sie als Keywords in package.json.
7. author
Betrachten Sie das Feld author-Feld als Feedback und Möglichkeit zur Interaktion mit Ihren Benutzern. Wenn Benutzer beispielsweise einen Fehler in Ihrem Modul entdecken, können sie dieses Feld verwenden, um Sie zu benachrichtigen und den Fehler beheben zu lassen.
-
Format: "Name \<E-Mail\> (Website)".
-
Demo: "Paul\<paul@your_domain\> (https://your_domain)"
-
Das Hinzufügen von E-Mail- und Website-Daten ist optional. Sie können jedoch einen gültigen Autor angeben und Ihre Kontaktdaten als author hinzufügen. Bestätigen Sie die Angaben und drücken Sie ENTER.
8. license
Das Feld license veranschaulicht die rechtlichen Bedingungen, die Benutzer bei der Verwendung Ihres Moduls kennen müssen. Da Node.js-Module Open Source sind, npm konfiguriert es auf ISC-Lizenz automatisch.
Navigieren Sie zur Open-Source-Lizenzseite und wählen Sie die Open Source Initiative, die Ihren Anforderungen am besten entspricht. Geben Sie UNLICENSED bei der Eingabeaufforderung ein, wenn Sie keine Lizenz für Ihr Repository benötigen. In unserem Tutorial verwenden wir die Standard-ISC-Lizenz. Drücken Sie ENTER , um diesen Vorgang abzuschließen.
Der Befehl init erstellt die Datei package.json und zeigt das Ergebnis an:

Drücken Sie als Nächstes ENTER, um fortzufahren und die Datei package.json zu erstellen. Unsere JSON-Datei zeichnet alle Module und Pakete auf, die wir in unserem Projekt installieren werden.
Im nächsten Schritt werden wir Abhängigkeiten und Node.js-Module installieren.
Schritt 2: Abhängigkeiten und Module installieren
Das Erstellen benutzerdefinierter externer Bibliotheken ist zeitaufwendig und erfordert mühsame Anstrengungen. Alternativ ist es am effektivsten, vordefinierte Abhängigkeiten und externe Bibliotheken zu installieren. In unserem Tutorial verwenden wir die HTTP-Bibliothek, um unserem Demo-Locator-Modul zu ermöglichen, eine externe API-Anfrage zur Erfassung geografischer Daten zu stellen.
In dieser Anleitung verwenden wir die Bibliothek axios , um HTTP-Anfragen zu stellen. Lassen Sie uns zuerst axios installieren:
|
1 |
npm install axios --save |
Beginnen Sie mit der Installation des npm-Pakets, gefolgt von deren Auflistung durch Leerzeichen. Fügen Sie außerdem das Tag --save hinzu, um sicherzustellen, dass das Projekt als Projektabhängigkeit gespeichert wird.
Sie sehen die Ausgabe:

Öffnen Sie die Datei package.json mit nano oder einem Texteditor Ihrer Wahl:
|
1 |
nano package.json |
Beachten Sie die neu hinzugefügte Eigenschaft, die unten im Codeblock hervorgehoben ist:

-
Entwicklungsabhängigkeiten herunterladen
Entwicklungsabhängigkeiten (Development Dependencies) sind Pakete, die bei der Projektentwicklung verwendet werden und in der Produktion oder Wartung des Projekts keinen Nutzen haben. Obwohl diese Abhängigkeiten in Produktionsbereichen unwirksam klingen mögen, spielen sie eine wichtige Rolle beim Schreiben und Umschreiben von Code.
Wie Code-Linter spielen Entwicklungsabhängigkeiten eine entscheidende Rolle in der Softwareentwicklung. Meistens verwenden Entwickler code linters, um die Einheitlichkeit und Konsistenz des Stylings während der Projektentwicklung zu wahren, was in der Produktion ansonsten nutzlos ist.
Lassen Sie uns einen Linter als Entwicklungsabhängigkeit für Ihr Projekt installieren. Verwenden Sie außerdem das Flag --save-dev , um eslint als für die Entwicklung erforderliche Abhängigkeit zu speichern:
|
1 |
npm i eslint@6.0.0 --save-dev |
Wir haben @6.0.0 zu unserer Abhängigkeit hinzugefügt, damit Module beim Aktualisieren mit einer Version versehen werden. Das Symbol @ weist npm an, nach einem bestimmten Tag zu suchen, das Sie installieren möchten. Öffnen Sie nun die Datei package.json erneut:
|
1 |
nano package.json |
Sie sehen die Ausgabe:

- Selbstgenerierte Dateien: node_modules und package-lock.json
Zu Beginn werden bei der Installation eines Pakets im Node.js-Projekt die Dateien package.json und package-lock.json automatisch erstellt. Bestätigen Sie diese Dateien im Arbeitsverzeichnis:
![]()
Da die meisten der installierten Abhängigkeiten im Ordner node_modules -Ordner. Es ist ratsam, diesen Ordner nicht in Ihr versionskontrolliertes Repository zu übertragen. Mit einer Zunahme der Anzahl installierter Abhängigkeiten steigt auch die Größe von node_modules ebenfalls.
Umgekehrt speichert die package-lock.json-Datei eine Aufzeichnung der genauen installierten Versionen, sodass es nicht erforderlich ist, node_modules explizit einzubinden. Im Gegensatz zum node_modules -Ordner können Sie diese Datei in Ihr versionskontrolliertes Repository übertragen, da sie eine detaillierte Darstellung aller Ihrer Abhängigkeiten mitsamt ihren Versionen liefert.
- Installieren mit package.json
Die package.json und package-lock.json-Dateien ermöglichen es Ihnen, dieselben Projektabhängigkeiten einzurichten, bevor Sie mit der Projektentwicklung beginnen. Navigieren Sie zu Ihrem Verzeichnisbaum und erstellen Sie einen neuen Ordner auf derselben Verzeichnisebene wie der Locator. Benennen Sie den neuen Ordner als cloned_locator:
|
1 2 |
cd .. mkdir cloned_locator |
Wechseln Sie als Nächstes in das Verzeichnis cloned_locator:
|
1 |
cd cloned_locator |
Importieren Sie die package.json und package-lock.json-Dateien aus locator nach cloned_locator:
|
1 |
cp ../locator/package.json ../locator/package-lock.json . |
Der . steht für den aktuellen Ordner. Installieren Sie die erforderlichen Module mit dem folgenden Befehl:
|
1 |
npm i |
Zunächst prüft npm die package-lock.json-Datei, um die Module zu installieren. Wenn die Lock-Datei nicht verfügbar ist, liest es die package.json -Datei, um die Installationen zu bestimmen.
Im Allgemeinen ist die Installation aus der package-lock.json einfach, da die Lock-Datei die genaue Version der Module und ihrer Abhängigkeiten enthält. Das bedeutet, wenn Sie mit der package.json, npm spart die zusätzliche Zeit, die für das Finden einer kompatiblen und stabilen Version erforderlich ist.
Ignorieren Sie die Entwicklungsabhängigkeiten (Development Dependencies), indem Sie das Flag --production hinzufügen:
|
1 |
npm i --production |
Gehen Sie danach zurück zum Locator:
|
1 |
cd ../locator |
- Globale Installationen
Bis jetzt haben wir npm-Module lokal installiert. Sie haben jedoch auch die Alternative, Pakete global zu installieren und sie über einen Shell-Befehl oder ein CLI zu verwenden. Beispielsweise können Sie das aktuelle Locator-Projekt mit der Hexo-Bibliothek verwalten und Ihre statische Website steuern. Verwenden Sie den folgenden Befehl mit dem Flag -g , um das Hexo-CLI global zu installieren:
|
1 |
npm i hexo-cli -g |
|
Hinweis: Wenn Sie beim globalen Installieren von Paketen eine Fehlermeldung erhalten, versuchen Sie diesen Befehl sudo npm i hexo-cli -g mit Root-Rechten. |
Verwenden Sie den folgenden Befehl, um zu überprüfen, ob das Paket erfolgreich installiert wurde:
|
1 |
hexo --version |
Sie sehen die Ausgabe:

Schritt 3: Module verwalten und aktualisieren
Ein Paketmanager hat mehr zu tun, als lediglich Node.js-Module zu installieren. Es gibt zahlreiche Anpassungsoptionen, mit denen Sie Module nach Belieben auflisten, aktualisieren, deinstallieren oder sogar eine Sicherheitsebene hinzufügen können.
In diesem Abschnitt lernen wir, wie man:
-
Module auflistet
-
Module aktualisiert
-
Module deinstalliert
-
Module überprüft (Audit)
Lassen Sie uns jedes im Detail besprechen:
-
Module auflisten
Das Auflisten von Modulen liefert Ihnen, wie der Name schon sagt, Details zu allen im Projekt installierten Modulen. Anstatt die package.json-Datei zu lesen, können Sie den Befehl ls oder list verwenden, um Ihre Projektmodule im Detail kennenzulernen:
|
1 |
npm ls |
Sie sehen die Ausgabe:

Standardmäßig listet der Befehl ls den gesamten Abhängigkeitsbaum auf, der die Projektabhängigkeiten und die Module, von denen sie abhängen, enthält. Sie können sich jedoch auch einen Überblick verschaffen und gezielt ein bestimmtes Modul ansteuern. Verwenden Sie den folgenden Befehl, um die installierten Module ohne deren Abhängigkeiten anzuzeigen:
|
1 |
npm ls --depth 0 |
Sie sehen die Ausgabe:

-
Module aktualisieren
Es ist immer ratsam, Ihre npm-Module auf dem neuesten Stand zu halten, damit keine Softwareabstürze oder Konflikte auftreten. Verwenden Sie den folgenden Befehl, um zu prüfen, ob ein Update erforderlich ist:
|
1 |
npm outdated |
Sie sehen die Ausgabe:

Lassen Sie uns jeden Begriff im Detail verstehen:
- Package: Es listet das aktuelle Package auf, das in Ihrem Projekt installiert ist.
- Current: Dies zeigt die Current -Version des Pakets.
- Wanted: Zeigt die npm Version, die am besten zu der Versionsanforderung in package.json.
- Aktuellste: Es zeigt die neueste npm, die veröffentlicht wurde und die Sie bei Bedarf aktualisieren müssen.
- Speicherort: Das Paket Speicherort im Abhängigkeitsbaum.
Wie vorgeschlagen, können wir unser npm auf eine stabile Version aktualisieren. Verwenden Sie den folgenden Befehl, um Ihr aktuelles Paket zu aktualisieren:
|
1 |
npm up eslint |
Sie sehen die Ausgabe:

Anstatt sie einzeln zu aktualisieren, können Sie auch alle Module auf einmal aktualisieren, indem Sie den up -Befehl verwenden:
|
1 |
npm up |
-
Module deinstallieren
Oft zeigt eine Abhängigkeit nicht die erwartete Ausgabe und Sie müssen eine angepasste Abhängigkeit erstellen. In solchen Szenarien haben Sie die Möglichkeit, Abhängigkeiten aus Ihren package.json und package-lock.json -Dateien zu deinstallieren. Angenommen, Sie haben axios als Abhängigkeit und es liefert kein zufriedenstellendes Ergebnis. Sie werden dieses Repository zweifellos aus Ihrem Projekt entfernen. Verwenden Sie den uninstall oder un -Befehl, um axios:
|
1 |
npm un axios |
Sie sehen die Ausgabe:

Obwohl der uninstall -Befehl die Abhängigkeit entfernt hat, haben wir keine Benachrichtigung über deren Entfernung erhalten. Lassen Sie uns die Abhängigkeiten auflisten, um zu sehen, wie viele Abhängigkeiten wir jetzt haben:
|
1 |
npm ls --depth 0 |
Sie sehen die Ausgabe, in der keine axios-Abhängigkeit mehr in der Liste vorhanden ist:

-
Audit-Module
Wenn die in Ihrem Projekt installierten Abhängigkeiten anfällig für potenzielle Sicherheitsbedrohungen sind, können Sie diese erkennen. Zuerst müssen Sie eine veraltete Version des request-Moduls installieren, um zu sehen, wie das Audit-Modul funktioniert:
|
1 |
npm i request@2.60.0 |
Sie sehen die Ausgabe, die Sie auffordert, Bedrohungen oder Schwachstellen zu beheben:

Um Details zu Schwachstellen und Bedrohungen anzuzeigen, verwenden Sie den audit -Befehl:
|
1 |
npm audit |
Sie sehen einen detaillierten Sicherheitsbericht:

Um diese Schwachstellen zu beheben, verwenden Sie den fix -Befehl:
|
1 |
npm audit fix |
Sie sehen die Ausgabe:

Sie haben vielleicht bemerkt, dass zwei von neun Schwachstellen behoben wurden. Die verbleibenden sieben Schwachstellen bestehen jedoch weiterhin in Ihren Abhängigkeiten, da audit fix nicht alle Probleme löst. Um dieses Problem zu lösen, müssen Sie möglicherweise Ihre Abhängigkeit auf eine höhere Version aktualisieren, die eine andere API verwendet. Seien Sie beim Aktualisieren vorsichtig, da die Wahrscheinlichkeit besteht, dass Sie Code weiter oben im Abhängigkeitsbaum beschädigen. Verwenden Sie den folgenden Befehl, um zu bestätigen, dass die Schwachstellen verschwunden sind:
|
1 |
npm audit fix --force |
Seien Sie vorsichtig, wenn Sie eine andere API verwenden, um Sicherheitsbedrohungen zu lösen, denn wenn Sie sich unsicher sind, kann dies die Funktionalität des Codes beeinträchtigen.
Fazit
Zusammenfassend haben wir gezeigt, wie man Node.js -Module mit npm und package.json verwendet. Darüber hinaus sind wir die Methoden zum Auflisten, Aktualisieren, Verwalten, Überprüfen und Deinstallieren unserer Paketabhängigkeiten durchgegangen. Als nächste Herausforderung empfehlen wir Ihnen, die in dieser Anleitung besprochenen Konzepte anzuwenden und selbst mit der Installation und dem Testen von Paketen zu experimentieren. Sie können auch versuchen, Node.js-Anwendungen zu erstellen und Abhängigkeiten zu konfigurieren, um Ihr Wissen zu vertiefen.
Außerdem gibt es viele andere Lernmaterialien zu Node.js und JavaScript-Themen, die Sie auf unserem Blog finden:
- Installation von Node.js auf CentOS 8: Eine vollständige Anleitung
- Verbinden von PostgreSQL mit Node.js-Anwendungen: Ein Tutorial
- Verwendung des HTTP-Clients Axios in einer React-Anwendung: Ein Tutorial
- Wie man eine Node.js (Express.js) App mit Docker auf Ubuntu 20.04 bereitstellt
Viel Spaß beim Programmieren!
Kommentare
Noch keine Kommentare. Schreiben Sie den ersten.