‫Kursleiter: In diesem Video werfen
‫wir einen Blick auf die beiden Pakettypen, die wir
‫mit npm installieren können, und auch auf die beiden Installationstypen, die es gibt.
‫Die beiden Pakettypen, die wir
‫installieren können, sind also einfache Abhängigkeiten oder Entwicklungsabhängigkeiten.
‫Jetzt sind einfache oder reguläre Abhängigkeiten einfach Pakete, die Code
‫enthalten, den wir in unseren eigenen Code einfügen.
‫Also Code, auf dem wir unsere eigene Anwendung erstellt haben,
‫und deshalb nennen wir sie eigentlich Abhängigkeiten,
‫weil unser Projekt und unser Code davon abhängen, dass
‫sie richtig funktionieren.
‫Zum Beispiel Express, das wiederum das Node-Framework
‫ist, das wir später
‫im
‫Kurs verwenden werden, ist eine Abhängigkeit.
‫Lassen Sie uns jetzt unsere allererste Abhängigkeit installieren, um
‫Ihnen zu zeigen, wie es funktioniert.
‫Und das Paket, das wir installieren werden, heißt Slugify,
‫ein kleines Tool, mit
‫dem wir aus Namen lesbarere URLs machen können.
‫Zum Beispiel wie Produktnamen im
‫Fall unseres Knotenformbeispiels.
‫Um also eine einfache Abhängigkeit in npm
‫zu installieren, müssen wir nur npm install sagen und
‫dann den Namen des Pakets,
‫der einfach Slugify ist.
‫In früheren Versionen musste man dash dash
‫save auch so sagen, aber im Moment ist
‫das nicht mehr nötig.
‫Wenn Sie also nur npm install slugify
‫angeben, wird dieses Paket als regelmäßige Abhängigkeit installiert.
‫Und beobachten Sie, was mit unserem Paket passiert. json-Datei, sobald die Installation
‫abgeschlossen ist.
‫Also drücken wir jetzt zurück und mal sehen, was passiert.
‫Und tatsächlich war das
‫wirklich schnell und es hat unser
‫Paket sofort installiert und dann dieses neue Feld namens Abhängigkeiten
‫erstellt und unsere erste Abhängigkeit, Slugify, genau dort eingefügt.
‫Es enthält dann auch die Version des Pakets,
‫aber wir werden später in diesem Abschnitt etwas mehr
‫darüber sprechen.
‫Dies ist unsere erste Abhängigkeit,
‫und auch dies ist nur eine normale Abhängigkeit.
‫Und wir werden Slugify gleich im nächsten
‫Video verwenden, um ein Gefühl dafür zu bekommen, wie wir diese Abhängigkeiten
‫von Drittanbietern in unserem Code verwenden.
‫Aber jetzt möchte
‫ich Ihnen zeigen, dass wir neben
‫diesen regelmäßigen Abhängigkeiten auch Entwicklungsabhängigkeiten haben.
‫Und dies sind in der Regel nur Tools
‫für die Entwicklung, zum Beispiel ein Code-Bündel
‫wie Webpack oder ein Debugger-Tool oder eine Testbibliothek.
‫Das sind also Entwicklungsabhängigkeiten.
‫Sie werden nicht für die
‫Produktion benötigt, daher hängt unser Code nicht wirklich davon
‫ab, wir verwenden sie einfach, um unsere Anwendungen zu entwickeln.
‫Lassen Sie uns nun eine Dev-Abhängigkeit
‫installieren, die nur eine Kurzbezeichnung für Entwicklungsabhängigkeit ist, und
‫das Tool, das
‫wir installieren werden, heißt nodemon.
‫Also npm install nodemon, wie folgt, und was wir dann tun müssen,
‫um anzugeben, dass dies eine
‫Entwicklungsabhängigkeit ist, ist, dev zu speichern, und dies fügt dann diesem
‫Paket einen Eintrag hinzu. json
‫in den Dev-Abhängigkeiten.
‫Werfen wir also einen
‫Blick darauf, sobald die Installation abgeschlossen ist.
‫Nodemon ist jetzt ein sehr schönes Tool, das uns
‫bei der Entwicklung von Node JS-Anwendungen hilft, indem
‫es die Node-Anwendung automatisch neu startet, wenn wir einige Dateien in
‫unserem Arbeitsverzeichnis ändern.
‫Denken Sie also daran, dass ich in dem
‫Projekt den Server die ganze Zeit geschlossen und dann
‫jedes Mal neu gestartet habe, wenn
‫ich den Code änderte.
‫Aber mit diesem Tool ist das nicht mehr nötig.
‫Daher wird der Server jedes Mal automatisch neu gestartet, wenn wir
‫eine Änderung vornehmen.
‫Die Installation ist nun abgeschlossen
‫und es wurde ein neues Feld namens dev
‫Dependencies erstellt und dann natürlich nodemon hinzugefügt.
‫Und so weiß unser Projekt jetzt im
‫Grunde, dass wir hier auf dieses Tool angewiesen sind, um unsere Anwendung
‫zu entwickeln, und dieses Paket hier, um unsere Codebasis tatsächlich aufzubauen.
‫Dies sind also die beiden Arten von Paketen.
‫Lassen Sie uns nun auch über die beiden Installationsarten
‫dieser
‫Pakete sprechen, denn im Moment haben wir
‫diese Pakete nur lokal installiert, damit sie
‫nur in diesem Projekt funktionieren und
‫wir das hier in unserem
‫Projektordner sehen können,
‫weil npm dies erstellt hat neuer
‫Ordner namens Knotenmodule für uns.
‫Es hat alle Abhängigkeiten unseres Projekts.
‫Aber jetzt könnten Sie sich fragen,
‫nun, wir haben nur Slugify
‫und nodemon angegeben, also was machen all diese Pakete hier?
‫Nun, das liegt einfach daran,
‫dass sie wiederum Abhängigkeiten unserer Abhängigkeiten sind.
‫Wenn beispielsweise Slugify eines dieser Pakete benötigt,
‫dann installiert npm auch diese Abhängigkeiten.
‫Und so landen wir bei all diesen Abhängigkeiten hier
‫in unserem Projekt.
‫Diese sind also für lokale Module, also Slugify
‫und Nodemon, wir haben
‫sie einfach lokal in unserem Projektordner installiert und
‫sie werden nirgendwo anders funktionieren.
‫Aber mit npm können wir auch globale Installationen durchführen, und
‫globale Installationen sind dann überall verfügbar, nicht
‫nur in unserem Projektordner,
‫sondern in jedem Ordner auf Ihrem gesamten Computer.
‫Daher sollte ein Paket global installiert
‫werden, wenn es einen ausführbaren Befehl bereitstellt, den Sie
‫über die Befehlszeilenschnittstelle ausführen können.
‫Und Nodemon ist zum Beispiel ein solches Tool.
‫Ich verwende Nodemon in allen Node-Projekten, an denen ich arbeite, und
‫habe Nodemon als globale Abhängigkeit installiert, da ich es auf
‫diese Weise nicht jedes Mal installieren muss, wenn
‫ich ein neues Projekt erstelle.
‫Ich kann es einfach in einem neuen
‫Projekt verwenden, da es bereits global installiert ist.
‫Also lassen Sie uns das jetzt tatsächlich tun.
‫Löschen Sie hier die Konsole
‫und installieren Sie sie dann global.
‫Also npm install, und es gibt tatsächlich
‫eine Abkürzung für install.
‫Es reicht eigentlich aus, einfach so zu schreiben.
‫So mache ich das eigentlich normalerweise.
‫Also npm i nodemon und dann global markieren.
‫Drücken Sie
‫jetzt die Eingabetaste, und so wird es jetzt global installiert.
‫Aber es gibt uns tatsächlich diesen Fehler, und
‫wenn Sie auf einem Mac sind und es so
‫gemacht haben, wird es Ihnen
‫auch einen Fehler geben, einfach weil
‫Sie nicht die Berechtigung haben, dieses Paket zu installieren.
‫Wenn Sie einen Mac verwenden, funktioniert es nicht, und
‫ich glaube, unter Windows sollte es
‫funktionieren, zumindest habe ich diese
‫Erfahrung, aber wenn Sie einen Mac verwenden, haben
‫Sie tatsächlich sudo davor gestellt und geben Sie
‫dann Ihr Passwort ein, um die Erlaubnis zu erteilen.
‫In meinem Fall habe
‫ich Touch ID, aber wenn Sie diese
‫nicht haben, können Sie Ihr Benutzerkonto-Passwort verwenden.
‫Wie auch immer, das funktioniert jetzt und wir können jetzt damit beginnen, nodemon
‫in diesem Projekt zu verwenden.
‫Lassen Sie mich Ihnen also zeigen, wie es funktioniert.
‫Bevor wir unsere App gestartet haben, haben wir es so gemacht.
‫Wir haben node und dann index geschrieben. js.
‫Was ich jetzt hier gemacht habe, war eigentlich eine Autovervollständigung,
‫und ich glaube, ich hatte zu diesem Zeitpunkt
‫noch nicht mit Ihnen
‫darüber gesprochen, also lassen Sie mich fortfahren und dies löschen.
‫Also habe ich angefangen, das i hier einzugeben, und
‫da es keine andere Datei gibt, die mit einem i beginnt, kann
‫ich jetzt auf die
‫Tabulatortaste drücken, und so wird der Rest des
‫Dateinamens automatisch für mich vervollständigt.
‫Früher haben wir das so gemacht, dann auf die
‫Eingabetaste geklickt, und wenn wir dann
‫etwas ändern wollten, mussten wir es so beenden
‫und alles neu starten.
‫Aber das ist nicht mehr der Fall, weil wir jetzt nodemon haben.
‫Alles, was wir tun müssen, ist, anstatt node zu schreiben,
‫nodemon und dann index. js.
‫Okay, und jetzt überwacht es jede Datei mit
‫jeder Erweiterung.
‫Wenn wir jetzt zu unserer Datei hier zurückkehren,
‫müssen wir nicht einmal etwas ändern,
‫ich muss sie nur speichern
‫und mir ansehen, was hier unten in der Konsole passiert.
‫Ich speichere es jetzt und
‫Sie sehen, dass der Neustart aufgrund von Änderungen erfolgt.
‫Jetzt geht es wieder los, Knotenindex. js.
‫Sie sehen also, dass
‫es hinter den Kulissen tatsächlich immer noch den ursprünglichen Befehl ausführt,
‫den wir früher ausgeführt haben, also den Knotenindex. js, und Nodemon ist im
‫Grunde nur ein Wrapper um diesen Node-Befehl,
‫einfach um unser Leben
‫ein bisschen einfacher zu machen.
‫Dies ist ein äußerst praktisches Werkzeug für uns, um mit Node
‫zu arbeiten, und für
‫den Rest des Kurses werde ich immer nodemon anstelle
‫des node-Befehls verwenden.
‫Und jetzt zum Schluss noch eine Kleinigkeit, die
‫ich Ihnen hier zeigen wollte.
‫Nehmen wir also an, wir haben nodemon nicht global installiert.
‫Nun, wie würden wir dann unsere Dev-Abhängigkeit hier lokal verwenden?
‫Also der lokale Nodemon, den wir installiert haben.
‫Nun, wir konnten es nicht einfach über
‫die Befehlszeile ausführen, da die lokalen Abhängigkeiten nicht so funktionieren.
‫Wir können sie nicht einfach sofort in der Befehlszeile verwenden,
‫aber wir können ein npm-Skript angeben, und das
‫tun wir hier in diesem Skriptfeld.
‫Als wir npm darin gemacht haben,
‫hat es tatsächlich dieses eine Skript hier für uns
‫platziert, das zum
‫Testen ist, und dann einfach gesagt, dass wir keinen Test angegeben haben.
‫Das ist für uns jetzt also nur ein
‫Platzhalter, den wir jetzt durch start und dann
‫durch nodemon index ersetzen können. js.
‫Und dieser Nodemon, den ich hier
‫verwende, wird tatsächlich der
‫Nodemon sein, der aus den Dev-Abhängigkeiten kommt.
‫Anstatt den Befehl hier in die Befehlszeile zu schreiben,
‫wie ich es
‫hier getan habe, werde ich einfach dasselbe in ein npm-Skript einfügen.
‫Das Skript heißt in diesem Fall
‫start, und jetzt können wir es ausführen.
‫Lassen Sie mich das hier beenden.
‫So führen wir also ein npm-Skript
‫aus, npm run and start, und tatsächlich erhalten wir
‫hier den Befehl nodemon index. js, und jetzt
‫funktioniert alles genauso wie zuvor.
‫Richtig?
‫Und das hat
‫nichts damit zu tun, dass
‫wir nodemon vorher global installiert haben, es funktioniert
‫einfach so, denn wiederum ist nodemon unsere Dev-Abhängigkeit hier im npm-Skript.
‫Wir können
‫dann so etwas wie eine Befehlszeilenschnittstelle
‫schreiben, die diese lokale Abhängigkeit verwendet
‫und nicht die globale.
‫Auch dies hätte ohne
‫global installierte Nodemon problemlos funktioniert.
‫So spezifizieren Sie das npm-Skript, und wir werden
‫in diesem Kurs noch eine Menge
‫mehr tun und ihnen alle möglichen Namen geben.
‫Start ist eine Art Standard für die Entwicklung.
‫Für start müssen
‫wir also nicht einmal npm run start schreiben, aber
‫das Schreiben von npm start reicht eigentlich aus,
‫um diesen speziellen Befehl auszulösen.
‫Sie sehen also wieder, es funktioniert so gut.
‫Perfekt.
‫In diesem Video haben Sie
‫also den Unterschied zwischen regulären Abhängigkeiten und Entwicklungsabhängigkeiten gelernt, und dann
‫haben Sie auch gelernt, dass Sie sie
‫entweder lokal oder global installieren können,
‫oder Sie können sie auch an beiden Orten installieren, oder?
‫Aber eigentlich sind die globalen
‫Abhängigkeiten, die wir installieren, normalerweise immer Entwicklungstools,
‫weil es sinnvoller ist, sie so
‫zu installieren, auch weil sie uns normalerweise
‫wie ein nettes Befehlszeilen-Schnittstellenprogramm zur Verfügung stellen.
‫Im nächsten Video werden wir dann diese Abhängigkeit, die wir hier installiert
‫haben, tatsächlich in unserem Code verwenden,
‫damit Sie tatsächlich
‫lernen, wie Sie ein Drittanbietermodul in Ihren Code einbinden.