Npm und Bower sind beide Werkzeuge zur Abhängigkeitsverwaltung. Der Hauptunterschied zwischen beiden ist, dass npm zur Installation von Node.js-Modulen verwendet wird, während Bower zur Verwaltung von Front-End-Komponenten wie HTML, CSS, JS usw. verwendet wird.
Ein Fakt, der dies noch verwirrender macht, ist, dass npm auch einige Pakete bereitstellt, die auch für die Front-End-Entwicklung verwendet werden können, wie z.B. grunt
und jshint
.
Diese Zeilen fügen mehr Bedeutung hinzu
Bower kann im Gegensatz zu npm mehrere Dateien (z.B. .js, .css, .html, .png, .ttf) haben, die als Hauptdatei(en) betrachtet werden. Bower betrachtet semantisch diese Hauptdateien, wenn sie zusammen verpackt sind, als Komponente.
Bearbeiten: Grunt ist ziemlich anders als Npm und Bower. Grunt ist ein JavaScript-Task-Runner-Tool. Mit Grunt können Sie viele Dinge tun, die Sie sonst manuell erledigen müssten. Hier sind einige Verwendungszwecke von Grunt hervorgehoben:
- Dateien zippen (z.B. mit dem zipup-Plugin)
- Linting auf JS-Dateien (jshint)
- Kompilieren von Less-Dateien (grunt-contrib-less)
Es gibt Grunt-Plugins für Sass-Kompilierung, Uglify Ihres JavaScripts, Kopieren von Dateien/Ordnern, Minifizierung von JavaScript usw.
Bitte beachten Sie, dass ein Grunt-Plugin auch ein npm-Paket ist.
Frage-1
Wenn ich ein Paket hinzufügen möchte (und die Abhängigkeit in git überprüfen), wo gehört es hin - in die package.json oder in die bower.json
Es hängt wirklich davon ab, wo dieses Paket hingehört. Wenn es sich um ein Node-Modul handelt (wie Grunt, Request), dann kommt es in die package.json, ansonsten in die bower.json.
Frage-2
Wann sollte ich jemals Pakete explizit installieren, ohne sie der Datei hinzuzufügen, die die Abhängigkeiten verwaltet
Es spielt keine Rolle, ob Sie Pakete explizit installieren oder die Abhängigkeit in der .json-Datei angeben. Angenommen, Sie arbeiten an einem Node-Projekt und benötigen ein weiteres Projekt, sagen wir request
, dann haben Sie zwei Optionen:
- Bearbeiten Sie die package.json-Datei und fügen Sie eine Abhängigkeit zu 'request' hinzu
- npm install
ODER
- Verwenden Sie die Befehlszeile:
npm install --save request
Die Option --save
fügt die Abhängigkeit auch zur package.json-Datei hinzu. Wenn Sie die Option --save
nicht angeben, wird das Paket nur heruntergeladen, aber die json-Datei bleibt unverändert.
Sie können dies auf beide Arten tun, es wird keinen wesentlichen Unterschied geben.