JavaScript >> Javascript-Tutorial >  >> Tags >> npm

NPM und Verwenden von Node als Befehlszeilentool

Node.js wurde entwickelt, um JavaScript auf den Webserver zu bringen, damit die Benutzer dieselbe Sprache auf ihrem Front- und Backend verwenden können, aber das ist nicht die einzige Möglichkeit. Obwohl Node.js dafür möglicherweise nicht besonders gut geeignet ist, können Sie dennoch Befehlszeilentools einfach ausführen. Viele der Pakete auf NPM sind Befehlszeilentools, die Ihren Arbeitsablauf viel reibungsloser machen. Sehen wir uns einige an.

Was ist NPM?

NPM ist der Node Package Manager und wir müssen lernen, wie man ihn benutzt, bevor wir irgendetwas anderes tun, denn das bringt uns die Leistung, die in den Paketen enthalten ist, die die Befehlszeilentools enthalten. Wenn Sie Node installiert haben (wie ich es im vorherigen Beitrag über Node gelehrt habe), erhalten Sie automatisch auch NPM. Also müssen wir zuerst unsere Konsole/Shell starten.

Jeder Befehl, der NPM verwendet, beginnt mit npm . Geben Sie einfach npm ein , dann erhalten Sie eine gute lange Liste von Befehlen, die Sie damit verwenden können, aber es gibt wirklich nur einen Befehl, der uns im Moment interessiert, und dieser ist install . Sie können die Online-Dokumentation für die Installation lesen, wenn Sie möchten.

Um ein Paket zur Verwendung zu installieren, können Sie einfach npm install PACKAGENAME schreiben . Wenn Sie eine bestimmte Version des Pakets wollen, können Sie es so schreiben:npm install [email protected] . Dadurch wird das Paket in einem node_modules-Ordner im aktuellen Verzeichnis installiert, wodurch die Pakete und Module zur Verwendung in Ihren Anwendungen über require verfügbar gemacht werden . Wenn es um die Verwendung der Befehlszeilentools geht, möchten Sie jedoch, dass sie global installiert werden, sodass Sie sie nur einmal installieren müssen und für jedes Projekt funktionieren, und Sie müssen sich nicht in einem bestimmten Ordner befinden, um sie zu verwenden . Um ein Paket global zu installieren, verwenden Sie den -g so kennzeichnen:npm install –g PACKAGENAME .

Es gibt noch eine weitere gängige Möglichkeit, Pakete zu installieren. Wenn Sie ein Projekt durchführen, das von mehreren Paketen abhängt, und Sie es in einem Remote-Repository aufbewahren möchten, können Sie das Hochschieben der Paketdateien in das Repository überspringen und einfach alle Abhängigkeitsdaten in einer Datei namens package.json aufbewahren . Dies ist eine einfache JSON-Datei und eine der Eigenschaften des darin enthaltenen Hauptobjekts ist dependencies . Diese dependencies -Eigenschaft listet alle Paketnamen und Versionen von Paketen auf, die Ihr Projekt benötigt. Sie können sich diese Datei „package.json“ als Beispiel ansehen (die Eigenschaft „dependencies“ befindet sich weiter unten). Wenn Sie sich in einem Verzeichnis befinden, das eine package.json-Datei enthält, müssen Sie lediglich node install in die Befehlszeile eingeben und es durchläuft alle diese Abhängigkeiten und installiert sie für Sie.

Jetzt denkst du „cool, aber ich weiß nicht, was eines der Pakete ist.“ Keine Sorgen machen. Es gibt eine Website, auf der Sie Pakete suchen und finden können:die NPM-Registrierung. Direkt auf der Startseite werden die zuletzt aktualisierten und die am häufigsten verwendeten Pakete angezeigt. Es gibt auch eine kleine Suchleiste, mit der Sie versuchen können, Pakete mit Schlüsselwörtern oder Paketnamen zu finden. Suchen Sie beispielsweise nach „MVC“. Dadurch wird eine Liste mit zahlreichen MVC-Frameworks angezeigt. Der rote Text, der auch ein Link zu weiteren Informationen über das Paket ist, ist der Name des Pakets, das Sie verwenden werden, wenn Sie versuchen, es zu installieren. Auch bei den Namen wird offenbar zwischen Groß- und Kleinschreibung unterschieden.

Befehlszeilen-Tools

Es gibt viele großartige Befehlszeilentools wie jshint und uglifyjs, die Ihren Code linten bzw. minimieren, alles von der Befehlszeile aus. Sie müssen nicht mehr ins Internet gehen, um den Code/die URL in ein Online-Tool zu kopieren/einzufügen. Sie verwenden Node bereits, warum also nicht ein wenig erweitern und stattdessen darauf aufbauende Befehlszeilentools verwenden?

Grunt ist eines der besten und bekanntesten Kommandozeilen-Tools für Node. Die zuvor verlinkte Datei „package.json“ stammt aus dem Grunt-Tool. Wie Sie in der Liste der Abhängigkeiten bemerkt haben, enthält sie jshint und uglifyjs. Das Tolle an Grunt ist, dass es sich um ein einzelnes Tool handelt, das mit einem einzigen Befehl installiert wird und die Arbeit mehrerer Befehlszeilentools selbst erledigen kann. Grunt kann Dateien verketten, einfache Projektgerüste erstellen, Ihr JavaScript linten und minimieren, Komponententests ausführen und vieles mehr. Ich empfehle dringend, die Readme-Datei von Grunt auf GitHub zu lesen und sich mit diesem Tool vertraut zu machen. Vielleicht möchten Sie auch diese Einführung zu Grunt auf Nettuts+ lesen.

Einen Schritt weiter

Sie können auch eine Reihe von Grunt-Erweiterungen finden, wenn Sie in der Registrierung nach „gruntplugin“ suchen. Mir persönlich gefällt bbb (Backbone Boilerplate Build Tool). Installieren Sie es mit npm install –g bbb . Es befindet sich über Grunt, sodass alles, was Sie normalerweise mit Grunt tun würden, jetzt mit bbb vorangestellt werden kann stattdessen. Die Hauptfunktion des Backbone Boilerplate Build Tools ist das Erstellen von Gerüsten und das Einziehen von Abhängigkeiten zum Erstellen von Backbone.js-Anwendungen. In diesem Projekt habe ich die Hauptkonzepte für die Datei config.js im letzten Video der Backbone.js App Walkthrough-Serie erhalten. Bis Yeoman herauskommt, denke ich, dass dies mein bester Freund sein wird.

Schlussfolgerung

Es gibt unzählige andere großartige Befehlszeilentools und noch viel mehr über NPM zu lernen, aber ich hoffe, ich habe Ihren Appetit geweckt und Sie werden anfangen zu experimentieren und durch all die Links zu klicken, die ich in den Beitrag geworfen habe. Freuen Sie sich auch auf ein bisschen mehr über Node in den kommenden Beiträgen. Ich bin mir immer noch nicht 100 % sicher, worüber ich in ihnen schreiben werde. Wenn es also einige Node-spezifische Themen gibt, die ich behandeln soll, lass es mich in den Kommentaren unten wissen. Gott segne und frohes Programmieren!