Eine der besten Funktionen von Node sind Paketmanager. Es gibt viele verschiedene Möglichkeiten, Knotenpakete zu installieren und zu verwalten. Hier sehen wir uns die Vor- und Nachteile der Verwendung eines Paketmanagers oder der Verwendung von mehr als einem Paketmanager an und einige der besten Möglichkeiten, sie zusammen zu verwenden.
Was ist ein Paketmanager, den Sie fragen? Lesen Sie weiter, um es herauszufinden.
Was sind Paketmanager?
In der Welt der Softwareentwicklung sind Abhängigkeiten das, was Sie zum Ausführen Ihres Projekts benötigen. Sie sind wie Zutaten in einem Rezept: Ohne sie geht nichts.
Wenn Sie beispielsweise eine App schreiben, die JavaScript verwendet, und auf einige Funktionen von zugreifen möchte eine Bibliothek namens jQuery (was viele Websites einmal verwendet haben), dann wird jQuery eine Ihrer Abhängigkeiten sein. Sie müssen es installiert haben, damit jemand, der Ihre Website besucht, diese coolen Animationen oder Interaktionen sehen kann, die Sie damit erstellt haben!
Paketmanager helfen bei der Verwaltung dieser Beziehungen zwischen Projekten, indem sie Abhängigkeiten für uns verwalten, sodass wir uns nicht darum kümmern müssen, sie selbst jedes Mal manuell herunterzuladen Mal etwas Neues hinzugefügt oder aktualisiert werden soll – sie stellen auch sicher, dass alles richtig zusammenarbeitet und nach der Installation reibungslos läuft (was manchmal einfacher gesagt ist als Erledigt).
Node wird mit einem Paketmanager namens NPM vorverpackt geliefert
NPM ist der standardmäßige Paketmanager und als solcher in die Knotenlaufzeit integriert. Sie können NPM verwenden, um Pakete von GitHub oder zu installieren NPM direkt. Sie können Ihre Pakete auch auf dieser Website veröffentlichen, damit andere sie mit ihrer Version von NPM installieren können.
NPM wird nicht nur zum Installieren von Paketen verwendet; Es behandelt auch Abhängigkeitsauflösungen und Versionskonflikte zwischen zwei oder mehr erforderlichen Bibliotheken oder Modulen in Ihrer Anwendungscodebasis.
Das heißt, wenn es mehrere Versionen von so etwas gibt Express läuft auf Ihrem Server Zu jedem Zeitpunkt stellt NPM sicher, dass jede Instanz das bekommt, was sie braucht, ohne dass es zu Konflikten kommt andere Instanzen, die ähnliche Arbeit leisten - und das alles, ohne dass Sie etwas Besonderes tun müssen, außer einfach Berufung erfordern() auf einem Objekt, wenn nötig!
NPM ist ein unglaublich leistungsfähiges Tool, und der Einstieg ist einfach. Aber wenn Node und JavaScript neu für Sie sind, kann es schwierig sein zu wissen, welche Tools für Ihre Verwendung verfügbar sind – und welche für ein bestimmtes Projekt am besten geeignet sind.
Das Hauptproblem mit NPM ist, dass es langsam ist, Pakete zu installieren. Dies ist keine große Sache, wenn Sie nur gelegentlich ein oder zwei Skripts ausführen, aber es kann unglaublich sein frustrierend, wenn Sie versuchen, eine ganze Anwendung zu erstellen, die Dutzende verschiedener Bibliotheken verwendet und Werkzeug.
Garn und PNPM sind schneller als NPM
Yarn ist eine sichere und zuverlässige Alternative zu NPM, die eine Sperrdatei verwendet, um versehentliches Überschreiben zu verhindern und sicherzustellen, dass Ihre Abhängigkeiten beim Installieren von Paketen korrekt aufgelöst werden.
Es hat auch eine schnellere Installationszeit als NPM, was es besonders nützlich macht, wenn Sie mit großen Projekten arbeiten, die viele Module mit vielen Abhängigkeiten haben.
PNPM ist eine Alternative zu Yarn und NPM, aber es ist noch nicht ganz so beliebt, da es einige der Funktionen, die in beiden enthalten sind (wie Sperrdateien), nicht hat. Die Entwickler behaupten jedoch, dass PNPM dank seiner leichten Natur Pakete bis zu viermal schneller installieren kann als Yarn oder NPM; Dies bedeutet auch weniger Speicherplatzverbrauch auf Ihrem Computer!
Wenn Sie ein Projekt erstellen, das nur eine Handvoll Abhängigkeiten erfordert, sind Yarn oder NPM wahrscheinlich ausreichend. Wenn Sie jedoch mit großen Projekten mit vielen Modulen und Abhängigkeiten arbeiten, könnte PNPM die bessere Option für Sie sein.
Vorteile der Verwendung mehrerer Paketmanager
Ein einzelner Paketmanager kann jeweils nur eine Version einer bestimmten Bibliothek verwalten. Wenn Sie zwei verschiedene Versionen derselben Bibliothek für andere Projekte oder in unterschiedlichen Umgebungen verwenden möchten (z. B. Produktion vs. Entwicklung), dann müssen Sie zwei separate Pakete auf Ihrem System installieren.
Dies kann zu Konflikten führen, wenn beide Pakete gleichzeitig versuchen, ihre Version derselben Abhängigkeit zu aktualisieren. Die Verwendung mehrerer Paketmanager bedeutet, dass Sie mehr Kontrolle darüber haben, welche Abhängigkeiten installiert werden und wo dies hilft, diese Art von Konflikten zu vermeiden.
Ein weiterer Vorteil besteht darin, dass bei der Verwendung mehrerer Paketmanager jeder seine eigenen einzigartigen Funktionen bietet. Manche sind vielleicht schneller als andere; einige haben möglicherweise bessere Abhängigkeitsverwaltungsfunktionen; andere eignen sich möglicherweise besser für die Entwicklung von Anwendungen innerhalb bestimmter Frameworks wie ReactJS oder VueJS usw.
Schließlich kann die Verwendung mehrerer Paketmanager dazu beitragen, Ihre Entwicklerproduktivität zu verbessern, indem der Zeitaufwand für die Suche nach und Installation von Abhängigkeiten reduziert wird. Dies liegt daran, dass jeder Paketmanager für eine bestimmte Reihe von Anwendungsfällen entwickelt wird (z. B. Geschwindigkeit vs. Sicherheit vs. Abhängigkeitsverwaltung usw.).
Verwenden Sie mehrere Paketmanager, indem Sie sie global installieren
Über die Befehlszeile können Sie angeben, welchen Paketmanager Sie für ein bestimmtes Projekt verwenden möchten. Richten Sie mehrere Paketmanager auf Ihrem Computer ein:
- NPM wird mit Node vorinstalliert geliefert. Auf diese Weise können Sie andere Pakete (und Paketmanager) über die Befehlszeile installieren und Abhängigkeiten in all Ihren Projekten mit NPM verwalten. Es ist auch hilfreich, wenn Sie NPM-Skripte in einem Browser (z. B. Webpack) ausführen möchten, da Browser nicht mit vorinstalliertem NPM geliefert werden!
- Installieren Sie Yarn auch global mit NPM. Dies ist eine weitere beliebte Option zum Verwalten von Abhängigkeiten in JavaScript-Projekten. Es hat einige Vorteile gegenüber NPM, die es für bestimmte Arten von Projekten oder Teams vorziehen können
- Installieren Sie schließlich PNPM. Dieser Paketmanager ist ein Fork von NPM, der schneller und stabiler sein soll. Es verfügt auch über einige zusätzliche Funktionen, die für einige Arten von Projekten nützlich sein können, z. B. Unterstützung für Abhängigkeiten von GitHub.
Beachten Sie, dass eine globale Installation bedeutet, dass das ausgewählte Paket für Ihr gesamtes System verfügbar ist (Sie können darauf zugreifen das Programm überall über die Befehlszeile), während auf eine lokale Installation nur von der aktuellen Arbeit aus zugegriffen werden kann Verzeichnis.
Beispiele aus der Praxis, wie Sie mehrere Paketmanager verwenden können
Sehen Sie sich diese Verwendungen an:
1. Garn und NPM können zusammen verwendet werden (z. Erstellen-Reagieren-App)
Dies ist nützlich, wenn Sie die Geschwindigkeit und Effizienz von Yarn nutzen und gleichzeitig die Kompatibilität mit NPM-Paketen beibehalten möchten. Wenn Sie die neueste Version einer Bibliothek benötigen, die noch nicht für die Kompatibilität mit Yarn aktualisiert wurde, oder wenn es einen anderen Grund gibt warum Ihr Team trotz der langsameren Geschwindigkeit oder des eingeschränkten Funktionsumfangs lieber bei NPM bleiben würde, dann könnte dies für Sie gut funktionieren Projekt. Es hilft auch, zwei separate Abhängigkeitsbäume in Ihrem Mono-Repo-Setup zu vermeiden!
2. Verwenden von Yarn für globale Pakete und PNPM für lokale Installationen
Obwohl PNPM der schnellste Paketmanager ist, kann es schwierig sein, ihn für global installierte Pakete zu verwenden. Dies liegt daran, dass es eine andere Dateistruktur verwendet, die Kompatibilitätsprobleme mit Programmen wie Visual Studio Code verursachen kann. Hier kommt Yarn ins Spiel. Sie können es für Ihre global installierten Pakete und PNPM für lokale Installationen verwenden. Diese Lösung ist eine gute Möglichkeit, die Vorteile beider Paketmanager zu nutzen, ohne Ihren Arbeitsablauf zu sehr ändern zu müssen. Mit diesem Setup können Sie – wenn Sie wild werden wollen – NPM vollständig von Ihrem System entfernen (aber es ist immer schön, NPM als Backup zu haben).
3. Verwenden von PNPM mit NPM als Fallback
Dies ist eine gute Option, wenn Sie PNPM verwenden möchten, aber nicht möchten, dass alle Ihre Entwickler bereits ein neues Tool erlernen müssen. Es ermöglicht ihnen, mit NPM weiterzuarbeiten, bis sie mit PNPM vertraut sind und es für ihre Arbeit benötigen.
Die Verwendung mehrerer Paketmanager macht die Sache einfacher
Sie können mehrere Paketmanager verwenden. Sie können sie global oder lokal installieren, und wenn Sie angeben möchten, welcher Paketmanager für ein bestimmtes Projekt verwendet werden soll, verwenden Sie einfach die Befehlszeile!
Wenn Sie mehrere Paketmanager auf Ihrem System installieren möchten, stellen Sie sicher, dass Sie dieselbe Version von Node.js verwenden.
Zusammenfassend denken wir, dass Sie mehr als einen Paketmanager verwenden sollten. Es ist eine großartige Möglichkeit, mit Node zu beginnen und auch einige neue Tools kennenzulernen, wenn Sie bereits mit NPM vertraut sind. Wenn Sie Node noch nicht installiert haben, ist die Einrichtung unter Windows einfach.