Node.js ermöglicht es, Anwendungen in JavaScript auf dem Server zu schreiben. Es baut auf dem V8 JavaScript-Laufzeit und in C++ geschrieben – also schnell. Ursprünglich war es als Serverumgebung für Anwendungen gedacht, aber Entwickler begannen damit, Tools zu entwickeln, die sie bei der lokalen Aufgabenautomatisierung unterstützen. Seitdem ist ein ganz neues Ökosystem von Node-basierten Tools (wie z Boden , Schluck und Webpack ) hat sich weiterentwickelt, um das Gesicht der Front-End-Entwicklung zu verändern.
Um diese Tools (oder Pakete) in Node.js nutzen zu können, müssen wir sie sinnvoll installieren und verwalten können. Hier kommt npm, der Node-Paketmanager, ins Spiel. Er installiert die Pakete, die Sie verwenden möchten, und bietet eine nützliche Schnittstelle, um mit ihnen zu arbeiten.
In diesem Artikel gehe ich auf die Grundlagen der Arbeit mit npm ein. Ich zeige Ihnen, wie Sie Pakete im lokalen und globalen Modus installieren sowie eine bestimmte Version eines Pakets löschen, aktualisieren und installieren. Außerdem zeige ich dir, wie du mit |_+_| . arbeitest um die Abhängigkeiten eines Projekts zu verwalten. Wenn Sie eher ein Video-Fan sind, melden Sie sich für SitePoint Premium an und sehen Sie sich unseren kostenlosen Screencast an: Was ist npm und wie kann ich es verwenden? .
Aber bevor wir npm verwenden können, müssen wir zunächst Node.js auf unserem System installieren. Machen wir das jetzt…
Node.js installieren
Gehen Sie zu Node.js Download-Seite und holen Sie sich die gewünschte Version. Es stehen Windows- und Mac-Installationsprogramme sowie vorkompilierte Linux-Binärdateien und Quellcode zur Verfügung. Unter Linux können Sie Node auch über den Paketmanager installieren, wie hier beschrieben .
Für dieses Tutorial verwenden wir v10.15.3 Stable. Zum Zeitpunkt des Schreibens ist dies der aktuelle Long Term Support (LTS)-Version von Node .
Sehen wir uns an, wo Node installiert wurde und überprüfen Sie die Version.
package.json
Um zu überprüfen, ob Ihre Installation erfolgreich war, versuchen wir es mit Nodes REPL.
Mongodb Atlas Data Lake
node_modules
Die Installation von Node.js hat funktioniert, sodass wir uns jetzt auf npm konzentrieren können, das in der Installation enthalten war.
{prefix}/lib/node_modules/
npm . aktualisieren
npm, der Paketmanager von Node.js, ist ein separates Projekt von Node.js. Es wird tendenziell häufiger aktualisiert. Sie können die neueste verfügbare npm-Version auf diesem überprüfen Seite . Wenn Sie feststellen, dass Sie eine ältere Version haben, können Sie wie folgt aktualisieren.
Verwenden Sie für Linux- und Mac-Benutzer den folgenden Befehl:
{prefix}
Führen Sie für Windows-Benutzer niemals den obigen Befehl aus. Wenn Sie dies bereits getan haben, können Sie npm nicht aktualisieren. Sie müssen Ihre gesamte Node.js-Installation deinstallieren und erneut installieren. Um npm in Windows ordnungsgemäß zu aktualisieren, müssen Sie Folgendes tun. Öffnen Sie zunächst PowerShell als Administrator und führen Sie folgenden Befehl aus:
/usr/
Dadurch wird sichergestellt, dass Sie Skripte auf Ihrem System ausführen können. Als nächstes müssen Sie die installieren npm-windows-upgrade Werkzeug. Nachdem Sie das Tool installiert haben, müssen Sie es ausführen, damit es npm für Sie aktualisieren kann. Führen Sie all dies in der PowerShell-Konsole mit erhöhten Rechten durch.
/usr/local
Knotenpaketierte Module
npm kann Pakete im lokalen oder globalen Modus installieren. Im lokalen Modus installiert es das Paket in einem |_+_| Ordner in Ihrem übergeordneten Arbeitsverzeichnis. Dieser Standort gehört dem aktuellen Benutzer. Globale Pakete werden in |_+_| . installiert die im Besitz von root ist (wobei |_+_| normalerweise |_+_| oder |_+_| ist). Dies bedeutet, dass Sie |_+_| . verwenden müssen Pakete global zu installieren, was beim Auflösen von Abhängigkeiten von Drittanbietern zu Berechtigungsfehlern führen und ein Sicherheitsproblem darstellen kann. Lass uns das ändern:
Zeit, diese Pakete zu verwalten
Ändern des Speicherorts von globalen Paketen
Mal sehen, welche Ausgabe |_+_| gibt uns.
sudo
Dies gibt uns Informationen über unsere Installation. Im Moment ist es wichtig, den aktuellen globalen Standort zu erhalten.
npm config
Dies ist das Präfix, das wir ändern möchten, um globale Pakete in unserem Home-Verzeichnis zu installieren. Erstellen Sie dazu ein neues Verzeichnis in Ihrem Home-Ordner.
.npmrc
Mit dieser einfachen Konfigurationsänderung haben wir den Ort geändert, an dem globale Node-Pakete installiert werden. Dadurch entsteht auch ein |_+_| Datei in unserem Home-Verzeichnis.
.node_modules_global/bin
Wir haben npm immer noch an einem Ort installiert, der Root gehört. Aber da wir unseren globalen Paketstandort geändert haben, können wir davon profitieren. Wir müssen npm erneut installieren, diesmal jedoch am neuen benutzereigenen Speicherort. Dadurch wird auch die neueste Version von npm installiert.
$PATH
Schließlich müssen wir |_+_| . hinzufügen zu unserem |_+_| Umgebungsvariable, damit wir globale Pakete über die Befehlszeile ausführen können. Tun Sie dies, indem Sie die folgende Zeile an Ihr |_+_|, |_+_|oder |_+_| . anhängen und starten Sie Ihr Terminal neu.
.profile
Jetzt unser |_+_| wird zuerst gefunden und die richtige Version von npm verwendet.
.bash_profile
Pakete im globalen Modus installieren
Im Moment haben wir nur ein Paket global installiert – das ist das npm-Paket selbst. Also lass uns das ändern und installieren UglifyJS (ein JavaScript-Minifizierungstool). Wir verwenden die |_+_| Flag, aber dies kann mit |_+_| abgekürzt werden.
wo kann ich coti crypto kaufen
.bashrc
Wie Sie an der Ausgabe sehen können, werden zusätzliche Pakete installiert – dies sind die Abhängigkeiten von UglifyJS.
Globale Pakete auflisten
Wir können die von uns installierten globalen Pakete mit dem |_+_| . auflisten Befehl.
.node_modules_global/bin
Die Ausgabe ist jedoch ziemlich ausführlich. Das können wir mit dem |_+_| . ändern Möglichkeit.
–global
Das ist besser – nur die Pakete, die wir mit ihren Versionsnummern installiert haben.
Alle global installierten Pakete werden über die Befehlszeile verfügbar. So würden Sie beispielsweise das Uglify-Paket verwenden, um |_+_| . zu minimieren in |_+_|:
-g
Pakete im lokalen Modus installieren
Wenn Sie Pakete lokal installieren, tun Sie dies normalerweise mit einem |_+_| Datei. Lassen Sie uns fortfahren und einen erstellen.
npm list
Drücken Sie die Eingabetaste, um die Standardeinstellungen zu akzeptieren, und geben Sie dann |_+_| . ein bestätigen. Dadurch wird ein |_+_| . erstellt Datei im Stammverzeichnis des Projekts.
–depth=0
Spitze : Wenn Sie einen |_+_| . schneller generieren möchten Dateiverwendung |_+_|
Die Felder sind hoffentlich ziemlich selbsterklärend, mit Ausnahme von |_+_| und |_+_|. Die |_+_| Feld ist der primäre Einstiegspunkt zu Ihrem Programm und das |_+_| -Feld können Sie Skriptbefehle angeben, die zu verschiedenen Zeiten im Lebenszyklus Ihres Pakets ausgeführt werden. Wir können diese vorerst so lassen, wie sie sind, aber wenn Sie mehr erfahren möchten, lesen Sie die package.json-Dokumentation zu npm und dieser Artikel über npm auch als Build verwenden das.
Jetzt versuchen wir es und installieren Unterstreichen .
example.js
Beachten Sie, dass eine Sperrdatei erstellt wird. Wir kommen später darauf zurück.
Wenn wir uns jetzt in |_+_| . umschauen wir werden sehen, dass ein |_+_| Feld wurde hinzugefügt:
example.min.js
Verwalten von Abhängigkeiten mit package.json
Wie Sie sehen, wurde Underscore v1.9.1 in unserem Projekt installiert. Das Caretzeichen (|_+_|) vor der Versionsnummer zeigt an, dass npm bei der Installation die höchste Version des Pakets einzieht, die es finden kann, wo nur die Hauptversion übereinstimmen muss (es sei denn, ein |_+_ | Datei ist vorhanden). In unserem Fall wäre das alles unter v2.0.0. Diese Methode der Versionsverwaltung von Abhängigkeiten (major.minor.patch) wird als semantische Versionierung bezeichnet. Hier können Sie mehr darüber lesen: Semantische Versionierung: Warum Sie sie verwenden sollten .
Beachten Sie auch, dass Unterstrich als Eigenschaft von |_+_| . gespeichert wurde Gebiet. Dies ist in der neuesten Version von npm zum Standard geworden und wird für Pakete (wie Underscore) verwendet, die für die Ausführung der Anwendung erforderlich sind. Es wäre auch möglich, ein Paket als |_+_| . zu speichern durch Angabe eines |_+_| Flagge. |_+_| sind Pakete, die für Entwicklungszwecke verwendet werden, beispielsweise zum Ausführen von Tests oder zum Transpilieren von Code.
Sie können auch |_+_| . hinzufügen nach |_+_| um die versehentliche Veröffentlichung privater Repositorys zu verhindern und alle Warnungen zu unterdrücken, die beim Ausführen von |_+_| generiert werden.
Mit Abstand der Hauptgrund für die Verwendung von |_+_| die Abhängigkeiten eines Projekts anzugeben ist Portabilität. Wenn Sie beispielsweise den Code einer anderen Person klonen, müssen Sie nur |_+_| . ausführen im Projektstamm und npm löst alle erforderlichen Pakete auf und ruft sie ab, damit Sie die App ausführen können. Wir werden uns dies später genauer ansehen.
Bevor Sie diesen Abschnitt beenden, überprüfen wir schnell, ob die Unterstreichung funktioniert. Erstellen Sie eine Datei namens |_+_| im Projektstamm und fügen Sie Folgendes hinzu:
package.json
Führen Sie die Datei mit |_+_| . aus und du solltest |_+_| . sehen auf den Bildschirm ausgeben.
Lokale Pakete deinstallieren
npm ist ein Paketmanager und muss daher in der Lage sein, ein Paket zu entfernen. Nehmen wir an, das aktuelle Underscore-Paket verursacht uns Kompatibilitätsprobleme. Wir können das Paket entfernen und eine ältere Version installieren, wie folgt:
yes
Installieren einer bestimmten Version eines Pakets
Wir können nun das Underscore-Paket in der gewünschten Version installieren. Wir tun dies, indem wir das @-Zeichen verwenden, um eine Versionsnummer anzuhängen.
package.json
Aktualisieren eines Pakets
Sehen wir uns an, ob es ein Update für das Underscore-Paket gibt:
package.json
Die Strom Spalte zeigt uns die lokal installierte Version. Die Neueste Spalte sagt uns die neueste Version des Pakets. Und der Gesucht Spalte teilt uns die neueste Version des Pakets mit, auf die wir aktualisieren können, ohne unseren vorhandenen Code zu beschädigen.
Erinnere dich an die |_+_| Datei von früher? Diese Datei wurde in npm v5 eingeführt und soll sicherstellen, dass die Abhängigkeiten auf allen Maschinen, auf denen das Projekt installiert ist, gleich bleiben. Es wird automatisch für alle Operationen generiert, bei denen npm entweder das |_+_| . ändert Ordner oder |_+_| Datei.
Sie können dies gerne ausprobieren, wenn Sie möchten. Löschen Sie die |_+_| Ordner und führen Sie dann |_+_| erneut aus. Die neueste Version von npm installiert Underscore v11.9.0 (da dies in der Datei |_+_| angegeben ist). Frühere Versionen ziehen aufgrund der Regeln der semantischen Versionierung in v1.9.1 ein. In der Vergangenheit haben sich inkonsistente Paketversionen als große Kopfschmerzen für Entwickler erwiesen. Dies wurde normalerweise mit einem |_+_| . gelöst Datei, die manuell erstellt werden musste.
Nehmen wir nun an, die neueste Version von Underscore hat den Fehler behoben, den wir zuvor hatten, und wir möchten unser Paket auf diese Version aktualisieren.
npm init --y
Spitze : Damit dies funktioniert, muss Underscore als Abhängigkeit in |_+_| aufgeführt werden. Wir können auch |_+_| . ausführen Wenn wir viele veraltete Module haben, die wir aktualisieren möchten.
Suche nach Paketen
Wir haben die |_+_| . verwendet Befehl ein paar Mal in diesem Tutorial. Gibt es ein Knotenpaket, das das gleiche tut? Verwenden wir |_+_|.
main
Es gibt ( mkdirp ). Lass es uns installieren.
scripts
Erstellen Sie nun eine Datei |_+_| und kopiere diesen Code und füge ihn ein:
main
Und führen Sie es vom Terminal aus:
scripts
Projektabhängigkeiten neu installieren
Lassen Sie uns zuerst ein weiteres Paket installieren:
package.json
Überprüfen Sie das |_+_|.
dependencies
Beachten Sie, dass die Liste der Abhängigkeiten automatisch aktualisiert wurde. In früheren Versionen von npm mussten Sie |_+_| . ausführen um die Abhängigkeit in |_+_| zu speichern. Wenn Sie ein Paket installieren möchten, ohne es in |_+_| zu speichern, verwenden Sie einfach |_+_| Streit.
Nehmen wir an, Sie haben den Quellcode Ihres Projekts auf einen anderen Computer geklont und wir möchten die Abhängigkeiten installieren. Löschen wir das |_+_| Ordner zuerst dann ausführen |_+_|
^
Wenn du dir dein |_+_| . anschaust Ordner, sehen Sie, dass er erneut erstellt wird. Auf diese Weise können Sie Ihren Code problemlos mit anderen teilen, ohne Ihr Projekt und Ihre Quell-Repositorys mit Abhängigkeiten aufzublähen.
Cache verwalten
Wenn npm ein Paket installiert, behält es eine Kopie, sodass es das nächste Mal, wenn Sie dieses Paket installieren möchten, nicht mit dem Netzwerk verbunden werden muss. Die Kopien werden im |_+_| . zwischengespeichert Verzeichnis in Ihrem Home-Pfad.
package-lock.json
Dieses Verzeichnis wird im Laufe der Zeit mit alten Paketen überladen, daher ist es nützlich, es gelegentlich zu bereinigen.
dependencies
Sie können auch alle |_+_| . löschen Ordner aus Ihrem Arbeitsbereich, wenn Sie mehrere Knotenprojekte auf Ihrem System haben, die Sie bereinigen möchten.
devDependency
Prüfung
In npm wurde eine neue Funktion eingeführt, die es Entwicklern ermöglicht, die Abhängigkeiten auf bekannte Sicherheitslücken zu scannen. Probieren wir diese Funktion aus, indem wir eine alte Version von |_+_| installieren.
–save-dev
Sobald wir die Installation abgeschlossen haben, erhalten wir eine kurze Meldung, dass mehrere Sicherheitslücken gefunden wurden. Sie können den Befehl |_+_| . ausführen um weitere Details anzuzeigen.
Python-Spracherkennung offline
devDependencies
Sie erhalten eine detaillierte Liste der Pakete, die Sicherheitslücken aufweisen. Wenn Sie sich das Feld „Pfad“ ansehen, wird der Abhängigkeitspfad angezeigt. Zum Beispiel der Pfad |_+_| bedeutet Express hängt vom Paket ab |_+_|. Das Paket |_+_| hängt vom Paket ab |_+_| die die Schwachstelle enthält.
Es gibt zwei Möglichkeiten, all diese Probleme zu beheben. Wir können entweder den Befehl |_+_| . ausführen wie vorgeschlagen, oder führen Sie |_+_| aus. Machen wir letzteres:
private: true
Wie Sie dem obigen Bericht entnehmen können, wurden alle Schwachstellen behoben. Der Befehl |_+_| haben die betroffenen Pakete einfach auf die neuesten Versionen aktualisiert. Beachten Sie jedoch, dass nicht alle Schwachstellen automatisch behoben werden können. Dies kann passieren, wenn Sie ein Paket verwenden, das einer größeren Änderung unterzogen wurde, die bei einer Aktualisierung Ihr aktuelles Projekt beschädigen könnte. In solchen Situationen müssen Sie Ihren Code überprüfen und die Aktualisierung manuell durchführen.
Du kannst auch |_+_| . ausführen wenn es Ihnen nichts ausmacht, Pakete mit Breaking Changes zu aktualisieren. Nachdem Sie den Befehl ausgeführt haben, führen Sie |_+_| . aus um sicherzustellen, dass alle Schwachstellen behoben wurden.
Aliase
Wie Sie vielleicht bemerkt haben, gibt es mehrere Möglichkeiten, npm-Befehle auszuführen. Hier ist eine kurze Liste einiger der am häufigsten verwendeten npm-Aliasnamen:
- |_+_| – lokales Paket installieren
- |_+_| – Globales Paket installieren
- |_+_| – lokales Paket deinstallieren
- |_+_| – npm-Updatepakete
- |_+_| – Tests durchführen
- |_+_| – Installierte Module auflisten
- |_+_| oder |_+_| – Drucken Sie zusätzliche Paketinformationen, während Sie Module auflisten
Sie können auch mehrere Pakete gleichzeitig wie folgt installieren:
package.json
Wenn Sie alle gängigen npm-Befehle lernen möchten, führen Sie einfach |_+_| . aus für die vollständige Liste. Mehr dazu erfahren Sie auch in unserem Artikel 10 Tipps und Tricks, die dich zu einem NPM-Ninja machen .
Versionsmanager
Es gibt eine Reihe von Tools, mit denen Sie mehrere Versionen von Node.js auf demselben Computer verwalten können. Ein solches Werkzeug ist n . Ein weiteres solches Werkzeug ist nvm (Knotenversions-Manager). Wenn Sie Windows verwenden, checken Sie aus nvm für Windows Wenn Sie daran interessiert sind, schauen Sie sich unser Tutorial an: Installieren Sie mehrere Versionen von Node.js mit nvm .
Abschluss
In diesem Tutorial habe ich die Grundlagen der Arbeit mit npm behandelt. Ich habe gezeigt, wie man Node.js von der Download-Seite des Projekts installiert, wie man den Speicherort globaler Pakete ändert (damit wir die Verwendung von |_+_| vermeiden können) und wie man Pakete im lokalen und globalen Modus installiert. Ich habe auch das Löschen, Aktualisieren und Installieren einer bestimmten Version eines Pakets sowie das Verwalten der Abhängigkeiten eines Projekts behandelt. Wenn Sie mehr über die neuen Funktionen in den neuesten Versionen erfahren möchten, besuchen Sie die npm Github veröffentlicht Seite .
Mit Version 5 macht npm große Fortschritte in der Welt der Frontend-Entwicklung. Laut seinem COO , seine Benutzerbasis ändert sich und die meisten, die es verwenden, verwenden es überhaupt nicht, um Node zu schreiben. Es wird vielmehr zu einem Werkzeug, mit dem die Leute JavaScript im Frontend zusammenstellen (im Ernst, Sie können damit fast alles installieren) und zu einem integralen Bestandteil des Schreibens von modernem JavaScript. Verwenden Sie npm in Ihren Projekten? Wenn nicht, ist jetzt vielleicht ein guter Zeitpunkt, damit anzufangen.
Danke fürs Lesen
Wenn dir dieser Beitrag gefallen hat, teile ihn mit all deinen Programmierfreunden!
Folge mir auf Facebook | Twitter
Erfahren Sie mehr
☞ Der komplette Node.js-Entwicklerkurs (3. Auflage)
☞ Der komplette JavaScript-Kurs 2019: Reale Projekte erstellen!
☞ Vue JS 2 - Das komplette Handbuch (inkl. Vue Router & Vuex)
☞ npm und die Zukunft von JavaScript
☞ A bis Z von Node.js-Paketen (unkonventionell)
☞ Go Essentials von Google für Node.js / JavaScript-Entwickler
☞ Maschinelles Lernen in Node.js mit TensorFlow.js
reagieren-benutzen-Gegensprechanlage
#npm #node-js #javascript #web-entwicklung
www.sitepoint.com
Ein Anfängerleitfaden zu npm – dem Node Package Manager
In diesem Artikel gehe ich auf die Grundlagen der Arbeit mit npm ein. Ich zeige Ihnen, wie Sie Pakete im lokalen und globalen Modus installieren sowie eine bestimmte Version eines Pakets löschen, aktualisieren und installieren.