Heim >Web-Frontend >js-Tutorial >Ausführliche Erläuterung des Projektverzeichnisses des Node.js-Pakets und der Verwendung des NPM-Pakets manager_node.js
Projektverzeichnis
Nachdem wir die oben genannten Kenntnisse verstanden haben, können wir nun ein Projektverzeichnis vollständig planen. Nehmen Sie als Beispiel das Schreiben eines Befehlszeilenprogramms. Im Allgemeinen stellen wir sowohl den Befehlszeilenmodus als auch den API-Modus bereit und verwenden Pakete von Drittanbietern, um Code zu schreiben. Ein vollständiges Programm sollte neben Code auch über eine eigene Dokumentation und Testfälle verfügen. Daher sieht ein Standardprojektverzeichnis wie folgt aus.
- /home/user/workspace/node-echo/ # 工程目录 - bin/ # 存放命令行相关代码 node-echo + doc/ # 存放文档 - lib/ # 存放API相关代码 echo.js - node_modules/ # 存放三方包 + argv/ + tests/ # 存放测试用例 package.json # 元数据文件 README.md # 说明文件
Der Inhalt einiger Dateien ist wie folgt:
/* bin/node-echo */ var argv = require('argv'), echo = require('../lib/echo'); console.log(echo(argv.join(' '))); /* lib/echo.js */ module.exports = function (message) { return message; }; /* package.json */ { "name": "node-echo", "main": "./lib/echo.js" }
Im obigen Beispiel werden verschiedene Dateitypen in Kategorien gespeichert und Module werden direkt unter Verwendung von Paketnamen von Drittanbietern über das Verzeichnis node_moudles geladen. Darüber hinaus kann das Node-Echo-Verzeichnis nach der Definition von package.json auch als Paket verwendet werden.
NPM
NPM ist ein Paketverwaltungstool, das zusammen mit NodeJS installiert wird. Es kann viele Probleme bei der Bereitstellung von NodeJS-Code lösen:
Wie Sie sehen, hat NPM ein NodeJS-Ökosystem etabliert, in dem NodeJS-Entwickler und -Benutzer miteinander kommunizieren können. Im Folgenden wird beschrieben, wie NPM in diesen drei Szenarien verwendet wird.
Pakete von Drittanbietern herunterladen
Wenn Sie Pakete von Drittanbietern verwenden müssen, müssen Sie zunächst wissen, welche Pakete verfügbar sind. Obwohl npmjs.org ein Suchfeld zur Suche anhand des Paketnamens bereitstellt, fragen Sie bitte Baidu, wenn Sie sich über den Namen des Drittanbieterpakets, das Sie verwenden möchten, nicht sicher sind. Nachdem Sie den Paketnamen kennen, z. B. argv im obigen Beispiel, können Sie das Terminal im Projektverzeichnis öffnen und den folgenden Befehl verwenden, um das Drittanbieterpaket herunterzuladen.
$ npm install argv ... argv@0.0.2 node_modules\argv
Nach dem Herunterladen wird das argv-Paket im Verzeichnis node_modules unter dem Projektverzeichnis abgelegt, sodass Sie nur require('argv') im Code angeben müssen, ohne den Paketpfad des Drittanbieters anzugeben.
Der obige Befehl lädt standardmäßig die neueste Version des Drittanbieterpakets herunter. Wenn Sie eine bestimmte Version herunterladen möchten, können Sie nach dem Paketnamen @3d689bd3819ead35ed794427bd12f459 hinzufügen. 1 von argv durch den folgenden Befehl.
$ npm install argv@0.0.1 ... argv@0.0.1 node_modules\argv
Wenn Sie viele Pakete von Drittanbietern verwenden, wäre es zu umständlich, jedes Paket mit einem Befehl im Terminal zu installieren. Daher hat NPM die Felder von package.json erweitert, um die Deklaration von Paketabhängigkeiten von Drittanbietern darin zu ermöglichen. Daher kann package.json im obigen Beispiel wie folgt umgeschrieben werden:
{ "name": "node-echo", "main": "./lib/echo.js", "dependencies": { "argv": "0.0.2" } }
Nach der Verarbeitung auf diese Weise können Sie den Befehl npm install verwenden, um Pakete von Drittanbietern stapelweise im Projektverzeichnis zu installieren. Noch wichtiger: Wenn Node-Echo in Zukunft auch auf den NPM-Server hochgeladen wird und andere dieses Paket herunterladen, lädt NPM automatisch weitere abhängige Pakete von Drittanbietern herunter, basierend auf den im Paket deklarierten Paketabhängigkeiten von Drittanbietern. Wenn Sie beispielsweise den Befehl npm install node-echo verwenden, erstellt NPM automatisch die folgende Verzeichnisstruktur.
- project/ - node_modules/ - node-echo/ - node_modules/ + argv/ ... ...
Auf diese Weise müssen sich Benutzer nur um die Pakete von Drittanbietern kümmern, die sie direkt verwenden, und müssen nicht die Abhängigkeiten aller Pakete selbst auflösen.
Befehlszeilenprogramm installieren
Die Methode zum Herunterladen und Installieren eines Befehlszeilenprogramms vom NPM-Dienst ähnelt der von Paketen von Drittanbietern. Beispielsweise stellt node-echo im obigen Beispiel eine Befehlszeilenverwendungsmethode bereit. Solange node-echo die relevanten package.json-Felder konfiguriert hat, müssen Benutzer nur den folgenden Befehl verwenden, um das Programm zu installieren.
$ npm install node-echo -g
Das -g im Parameter gibt eine globale Installation an, sodass Node-Echo standardmäßig am folgenden Speicherort installiert wird und NPM automatisch die unter Linux-Systemen erforderliche Softlink-Datei oder die unter Windows-Systemen erforderliche .cmd-Datei erstellt.
- /usr/local/ # Linux系统下 - lib/node_modules/ + node-echo/ ... - bin/ node-echo ... ... - %APPDATA%\npm\ # Windows系统下 - node_modules\ + node-echo\ ... node-echo.cmd ...
Postleitzahl
Sie müssen ein Konto registrieren, bevor Sie NPM zum ersten Mal zum Veröffentlichen von Code verwenden. Führen Sie npm adduser im Terminal aus und folgen Sie dann den Anweisungen. Nachdem das Konto eingerichtet ist, müssen wir die Datei package.json bearbeiten und die erforderlichen Felder für NPM hinzufügen. In Anlehnung an das Node-Echo-Beispiel oben lauten die erforderlichen Felder in package.json wie folgt.
{ "name": "node-echo", # 包名,在NPM服务器上须要保持唯一 "version": "1.0.0", # 当前版本号 "dependencies": { # 三方包依赖,需要指定包名和版本号 "argv": "0.0.2" }, "main": "./lib/echo.js", # 入口模块位置 "bin" : { "node-echo": "./bin/node-echo" # 命令行程序名和主模块位置 } }
Danach können wir npm Publish in dem Verzeichnis ausführen, in dem sich package.json befindet, um den Code zu veröffentlichen.
Versionsnummer
Wenn Sie NPM zum Herunterladen und Veröffentlichen von Code verwenden, werden Sie mit der Versionsnummer in Kontakt kommen. NPM verwendet semantische Versionsnummern zum Verwalten von Code. Hier finden Sie eine kurze Einführung.
Die semantische Versionsnummer ist in drei Ziffern unterteilt: X.Y.Z, die jeweils die Hauptversionsnummer, die Nebenversionsnummer und die Patch-Versionsnummer darstellen. Wenn sich der Code ändert, wird die Versionsnummer gemäß den folgenden Grundsätzen aktualisiert.
Wenn Sie den Fehler nur beheben, müssen Sie das Z-Bit aktualisieren.
Wenn eine neue Funktion hinzugefügt wird, diese aber abwärtskompatibel ist, muss das Y-Bit aktualisiert werden.
Bei größeren Änderungen ist es nicht abwärtskompatibel und das X-Bit muss aktualisiert werden.
Nachdem die Versionsnummer diese Garantie hat, kann sie sich beim Deklarieren von Paketabhängigkeiten von Drittanbietern nicht nur auf eine feste Versionsnummer verlassen, sondern auch auf einen bestimmten Bereich von Versionsnummern. „argv“: „0.0.x“ bedeutet beispielsweise, dass es von der neuesten Version von argv in der 0.0.x-Serie abhängt. Informationen zu allen von NPM unterstützten Methoden zur Spezifikation des Versionsnummernbereichs finden Sie in der offiziellen Dokumentation.
Seien Sie schlau
Zusätzlich zu den in diesem Kapitel vorgestellten Teilen bietet NPM auch viele Funktionen und es gibt viele andere nützliche Felder in package.json. Zusätzlich zur offiziellen Dokumentation unter npmjs.org/doc/ finden Sie hier einige gängige NPM-Befehle.
NPM bietet viele Befehle, z. B. „Installieren“ und „Veröffentlichen“. Verwenden Sie die NPM-Hilfe, um alle Befehle anzuzeigen.