Ich verstehe die Unterschiede zwischen npm install something
und npm install something --save
(für jeden, der sich fragt, installiert der erste die Abhängigkeit nur, während letzterer die Abhängigkeit installiert und sie zu Ihrer package.json hinzufügt).
Allerdings verstehe ich nicht, warum es eine Option --save
an erster Stelle gibt. Mit anderen Worten, warum sollten Sie jemals eine Abhängigkeit installieren, ohne diese in die Datei package.json einzufügen? Warum ist die Option --save nicht standardmäßig?
Viele Websites / npm-Module / SaaS schlagen vor, ihr Modul mit npm install something
zu installieren (newrelic ist einer von ihnen zum Beispiel), fehlt mir etwas?
Bearbeiten : Ausgehend von NPM 5 , --save
ist standardmäßig aktiviert.
Sie hätten ein Szenario, in dem Sie ein Modul installieren müssen, ohne die Abhängigkeit von package.json
file hinzuzufügen, z. Sie möchten nur ein Modul ausprobieren und nicht sicher sein, ob Sie dieses Modul wirklich in der Produktion oder während der Bereitstellung verwenden. Fügen Sie stattdessen die Modulabhängigkeit zu package.json
hinzu, probieren Sie es einfach aus, ohne --save
zu verwenden. Deshalb existiert npm install
ohne --save
.
Aber für die meisten Ihrer Module müssen Sie möglicherweise --save
verwenden, z. %Code%,
In diesem Fall wissen Sie sicher, dass Sie Express für Ihre Bewerbung verwenden werden.
Das andere Szenario, wenn Sie npm install express --save
nicht verwenden würden, wäre --save
oder npm install heapdump
, würde ich es zum Testen der Leistung meiner Apps verwenden, aber keine Abhängigkeit in package.json hinzufügen :)
Auch, wie @surajck im folgenden Kommentar sagte: Wenn Sie globale Installationen durchführen, würde in diesem Fall das Hinzufügen von Abhängigkeiten mit npm install nodemon
zu --save
keinen Sinn ergeben.
Ich habe gerade einen schönen Trick aus Jonathan Mills JavaScript Best Practices -Kurs auf Pluralsight gelernt. Vom Terminal:
npm config set save=true
Jetzt muss ich mich nicht mehr an --save
erinnern. Und ich benutze jetzt auch npm config set save-exact=true
Weil ich die genaue Version des Pakets nicht das Präfix ^
will.