Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Moderne Webanwendungen mit Node.js und Express.js

Node Package Manager

Testen Sie unsere 2015 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
NPM dient der Verwaltung von Abhängigkeiten innerhalb eines Node-Projektes.

Transkript

Der Node Package Manager ist ein fundamentaler Bestandteil des Node.JS-Ökosystems. Von daher ist es unerlässlich, bevor man mit einem Node.JS-Projekt beginnt, diesen kennenzulernen. Im Folgenden zeige ich Ihnen, wie sie Pakete suchen und finden können, wie Sie globale Installationen mithilfe von NPM vornehmen oder auch lokale Installationen spezifisch für Ihr Projekt. Die Haupt-Internetseite des Node Package Managers ist "npmjs.com". Dort sind alle Projekte, die man über den Node Package Manager auch beziehen kann, entsprechend gelistet und über die Suche zu finden. Die bekanntesten Projekte sind auf der Startseite bereits zu finden. Die Stichwortsuche erlaubt es mir entsprechend, auch jede Art von Paket für meinen entsprechenden Bedarf zu finden. Beispielsweise zum Thema "typescript" finde ich entsprechend hier die TypeScript-Sprache an sich, als auch viele Tools, die sich rund um TypeScript drehen. Im Regelfall ist jedes dieser Node Packages entsprechend gut dokumentiert. Das bedeutet, wenn man auf ein solches Projekt geht, bekommt man einen Hinweis, wie dieses Projekt zu installieren ist -- in diesem Falle handelt es sich um eine globale Installation -- und wie man weiter mit der Anwendung selbst verfahren kann. Um Aufschluss darüber zu bekommen, ob sich ein Projekt für den eigenen Gebrauch eignet, überprüft man idealerweise die Download-Anzahl der letzten Tage als auch wie viele offene Probleme noch auf GitHub existieren. Für jedes, oder so gut wie jedes Projekt gibt es entsprechend auch ein GitHub-Repository, in dem man den Source-Code des jeweiligen Node.JS-Projektes nachvollziehen kann als auch weitere Dokumentationen unter Umständen findet, oder sollte man entsprechend ein Problem haben, kann man unter "Issues" ein solches Problem melden und mit anderen Leuten aus der Community diskutieren. Der Node Package Manager unterscheidet nun zwei Arten von Installationen. Das sind zum einen Installationen, die sich auf einen Projekt-Ordner selbst beziehen, sich also unter dem Ordner "Node Modules" befinden werden, als auch Installationen, die global für alle Projekte gelten auf dem gesamten Betriebssystem. Mit dem Befehl "npm install -g" deklariert man global. Im Normalfall steht bei jedem Projekt, dass global installiert werden muss, eine entsprechende Dokumentation auf der Node-Site selbst. Ich installiere nun das Paket "Jade" global, und bekomme auf der Konsole nun eine neue Anwendung zur Verfügung gestellt, die sich als "Jade" bezeichnet. Wenn ich nun "Enter" hinter "jade" schreibe, ist dieser Befehl nun verfügbar und tut zunächst einmal nichts. Möchte ich nun beispielsweise eine "Jade"-Datei umwandeln, so bekomme ich eine Antwort, dass die "Jade"-Datei "beispiel" zur "beispiel.html" umgewandelt wurde. Die "Jade"-Datei hat also folgendes Format, und die Konsolenanwendung hat daraus nun eine HTML-Seite generiert. Ähnlich verfährt es sich mit allen anderen globalen Installationen. Wenn ich nun allerdings eine Node.JS-Anwendung schreibe, die innerhalb meines Projekts laufen soll, beispielsweise möchte dieser das Express-Framework nutzen, so muss diese Abhängigkeit vorher installiert werden. Auch hierfür hilft mir der Node Package Manager. Allerdings empfiehlt es sich, vorher immer ein Projekt zu initialisieren, um später die Reproduzierbarkeit der Abhängigkeiten zu garantieren. Wenn ich also nun mein Projekt starte, starte ich mit dem Befehl "npm init", werde nun zu verschiedenen Eingaben aufgefordert, die mein Projekt beschreiben, beispielsweise der Titel, die Version, die Beschreibung des Projektes, welche JavaScript-Datei der Startpunkt meiner Anwendung ist, welche JavaScript-Datei oder welches Kommando entsprechende Tests repräsentiert, ob es ein Git-Repository gibt, welche Keywords meine Anwendungen beschreiben, wer der Autor ist und zu guter Letzt unter welcher Lizenz das Ganze steht. Stimme ich dem Ganzen zu, wird nun innerhalb meines Projekt-Ordners eine "package.json"-Datei erstellt, die all diese Informationen als "json"-Objekt kapselt. Als Nächstes kann ich nun eine Abhängigkeit installieren und entsprechend in der "package.json" hinterlegen lassen. Wenn ich mich für das Express-Framework interessiere, so wähle ich "npm install express --save". Der Node Package Manager lädt nun alle Abhängigkeiten von Express herunter als auch Express selbst und innerhalb meines Projekt-Ordners entsteht nun der Ordner "Node Modules". In dem befindet sich nun der Ordner "Express" und entsprechend alles, was ich brauche, um "express.js" nutzen zu können. Innerhalb meiner "package.json"-Datei wurde nun die Abhängigkeit "Express" deklariert. Hierbei handelt es sich um eine Abhängigkeit, die dafür benötigt wird, dass meine Anwendung auch korrekt ausgeführt werden kann. Unter Umständen gibt es allerdings auch Abhängigkeiten, die nur zur Entwicklungszeit relevant sind, also nur während ich mich hier innerhalb meiner Entwicklungsumgebung befinde und die nichts mit der Laufzeit der Anwendung zu tun haben. Ein typisches Beispiel hierfür ist "Grunt", der JavaScript Task Runner. Sollte ich nun also "Grunt" installieren wollen, so würde ich ähnlich "npm install" verwenden und entsprechend hier den Namen des Projekts "grunt" statt "--save" würde ich zusätzlich noch "--save-dev" deklarieren und innerhalb meiner "package.json"-Datei gibt es nun einen Reiter "devDependencies". Das bedeutet, "Grunt: wird nur benötigt um entsprechend in der Entwicklungsumgebung damit arbeiten zu können. Zur Laufzeit wird lediglich "Express" benötigt. Effektiv verändern tut es für mein Projekt an sich nichts. Das bedeutet, innerhalb des "Node Modules"-Ordners befindet sich nun auch der "Grunt"-Ordner. Da ich aber den "Node Modules"-Ordner im Normalfall niemals in mein Versionskontrollsystem lade, kann diese Trennung durchaus Sinn machen. Einen Hinweis noch: Es gibt unter Umständen Projekte, wie beispielsweise "webworker-threads", die neben JavaScript-Code auch tatsächlichen Code für das jeweilige Betriebssystem enthalten, also entsprechend Linux, OS X oder auch Windows. Diese Abhängigkeiten benötigen unter Umständen einen Compiler, beispielsweise den C++ Compiler. Auf der Windows-Plattform wird dies über die "node-gyp tool chain" abgedeckt. Um die "node-gyp tool chain" korrekt nutzen zu können, ist es unter Umständen notwendig, eine völlig kostenfreie Version von Visual Studio Express für den Windows Desktop herunterzuladen und zu installieren. Sollten Sie also einmal dem Problem ausgesetzt sein, dass eine Bibliothek sich aus dem NPM nicht korrekt installieren lässt, so überprüfen Sie, ob Sie entsprechend Express 2013 für Windows Desktop installiert haben. Ich habe Ihnen nun also gezeigt, wo Sie Pakete suchen und finden können: Auf der Seite von "npmjs". Dort gibt es sowohl die Dokumentation als auch die Verlinkungen offener Probleme als auch andere Dinge zu GitHub, und anhand der Bewertungen können Sie nun bestimmen, ob die Anzahl offener Probleme als auch Downloads Ihren Vorstellungen entsprechen. Globale Installationen wurden mit dem "-g"-Parameter vorgenommen. Dabei handelt es sich im Regelfall immer um Konsolenanwendungen. Und lokale Installationen befinden sich im Ordner "Node Modules". Je nachdem, für welchen Ort diese Installationen geeignet sind, speichert man sie zum einen mit "--save" oder zum anderen mit "--save-dev" für die Entwicklung.

Moderne Webanwendungen mit Node.js und Express.js

Entwickeln Sie auf der Open-Source-Plattform Node.js kompakte und performante Webapplikationen und lernen Sie weiterführende Konzepte professioneller Webentwicklung kennen.

2 Std. 20 min (24 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Exklusiv für Abo-Kunden
Erscheinungsdatum:23.03.2015

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!