Was ist die Option --save für die Installation von npm?

2036

Ich habe ein Tutorial gesehen, in dem der Befehl lautete:

npm install --save

Was bedeutet die --saveOption?

Antwort bei Google nicht gefunden.

Dmitri
quelle
32
@ Tom- --save: Package will appear in your dependencies.
WiredPrairie
7
Sie können die Verknüpfung -S und -D verwenden, dort -S ist --save und -D ist '--save-dev. --save (oder simple -S): Das Paket wird in Ihren Abhängigkeiten angezeigt. --save-dev (oder simple -D): Das Paket wird in Ihren devDependencies angezeigt.
Gil Epshtain
5
@WiredPrairie danke ich habe es versucht npm install (--help | -h | -help ..)und nichts.
Juliangonzalez
2
Danke @Dmitri, ich hatte das gleiche Problem. Komm auf NPM, füge das zu deiner MAN-Seite für dein Werkzeug hinzu
Erdinc Ay
67
Ich verstehe die Gründe für die Entscheidung nicht einmal, nur eine Erwähnung dieser Option aus der Dokument- und Hilfeseite zu entfernen, ohne sie zumindest mit einer Warnung im Tool selbst zu verwerfen. In der Zwischenzeit werden Neulinge über zig Tutorials darauf aufmerksam gemacht. Dann versuchen sie herauszufinden, was es tut, und müssen 20 Minuten damit verschwenden, die Dokumente zu lesen, um schließlich den npm-Verlauf beim Stackoverflow zu lesen. Seltsamerweise ist die Verhinderung dieser Art von massiver Zeitverschwendung (wenn die Popularität der Frage ein Hinweis ist) einer der Zwecke der Dokumentation.
Michael Ekoka

Antworten:

2478

Update npm 5:

Ab npm 5.0.0 werden installierte Module standardmäßig als Abhängigkeit hinzugefügt, sodass die --saveOption nicht mehr benötigt wird. Die anderen Speicheroptionen sind noch vorhanden und in der Dokumentation für aufgeführt npm install.

Ursprüngliche Antwort:

Vor Version 5 hat NPM einfach node_modulesstandardmäßig ein Paket unter installiert . Wenn Sie versuchen, Abhängigkeiten für Ihre App / Ihr Modul zu installieren, müssen Sie diese zuerst installieren und dann (zusammen mit der entsprechenden Versionsnummer) zum dependenciesAbschnitt Ihrer hinzufügen package.json.

Die --saveOption wies NPM an, das Paket automatisch in den dependenciesAbschnitt Ihres zu integrieren package.json, wodurch Sie einen zusätzlichen Schritt sparen.

Darüber hinaus gibt es die ergänzenden Optionen, --save-devmit --save-optionaldenen das Paket unter devDependenciesbzw. optionalDependenciesgespeichert wird. Dies ist nützlich, wenn Sie nur Entwicklungspakete wie gruntIhre Testbibliothek installieren .

voithos
quelle
140
Ernsthaft, ist das irgendwo dokumentiert? Ich konnte es weder bei Google noch in der npmHilfe finden.
Christian Ternus
111
Es wäre schön, wenn die Dokumentation dazu bei Verwendung auftauchen würde npm install --help.
Mark Stosberg
11
@jimsmith: Ab npm 5.0 ist dies die Standardeinstellung.
Voithos
3
Ändert "npm update" auf NPM 5 standardmäßig package.json?
Igor Okorokov
6
@voithos Für mich aktualisiert NPM 5 die Paketversionen in package.json. Um dies zu vermeiden, muss ich 'npm update --no-save'
Igor Okorokov
219

So fügen Sie ein Paket in Abhängigkeiten hinzu:

npm install my_dep --save

oder

npm install my_dep -S

oder

npm i my_dep -S

So fügen Sie ein Paket in devDependencies hinzu

npm install my_test_framework --save-dev

oder

npm install my_test_framework -D

oder

npm i my_test_framework -D

package.json Geben Sie hier die Bildbeschreibung ein

Joe L.
quelle
30
Seien Sie vorsichtig, -S -Dwenn Sie Verknüpfungsversionen verwenden, da diese in Großbuchstaben geschrieben werden müssen. Ich mache immer diesen Fehler und npm beschwert sich nicht und fügt ihn nicht zu package.json
Murray Wynnes
7
Es wird nicht beanstandet, da -s(Kleinbuchstaben) für die --silentOption und -dfür Google Level-Informationen gilt, die beide gültige Verknüpfungen sind.
Tanvi
131

Es wird nichts tun, wenn Sie keine package.jsonDatei haben. Beginnen Sie mit dem Ausführen npm init, um eine zu erstellen. Ruft dann das auf npm install --saveoder npm install --save-devoder npm install --save-optionalaktualisiert das, package.jsonum Ihre Abhängigkeiten aufzulisten.

Nick Retallack
quelle
37
Ich habe gerade herausgefunden, dass es rückwirkend funktioniert (wie es scheint). Sie können npm install --save-devzuerst Ihre , dann npm init ausführen und Ihre package.json wird gefüllt.
Jacob Wang
20

gemäß NPM Doc

Geben Sie hier die Bildbeschreibung ein

Es scheint also, dass beim Ausführen npm install package_namedie Paketabhängigkeit automatisch zu package.json hinzugefügt werden sollte, oder?

ROROROOROROR
quelle
1
Ich denke - no-save ist zu verwenden, wenn Sie Funktionen wie npm <5
Abhiroj Panwar
Ich sehe, npm config ls -lzeigt, dass save-xxx-Optionen standardmäßig alle falsch sind, nur save ist true.
ROROROOROROR
Es sieht so aus, als würde npm keinen Fehler auslösen, wenn Sie eine Option "Keine vorhanden" wie --save-xxxxxx eingeben. Es wird einfach ignoriert und das Standardverhalten --save-prod wird beeinflusst. Vielleicht --save stammt aus einer alten npm-Version.
Leon
13

Sie können auch verwendet werden -S, -Doder -Pdie gleichwertig , das Paket zu einer App Abhängigkeit, ein Entwicklers Abhängigkeit oder prod Abhängigkeit des Sparens. Weitere NPM-Verknüpfungen finden Sie unten:

-v: --version
-h, -?, --help, -H: --usage
-s, --silent: --loglevel silent
-q, --quiet: --loglevel warn
-d: --loglevel info
-dd, --verbose: --loglevel verbose
-ddd: --loglevel silly
-g: --global
-C: --prefix
-l: --long
-m: --message
-p, --porcelain: --parseable
-reg: --registry
-f: --force
-desc: --description
-S: --save
-P: --save-prod
-D: --save-dev
-O: --save-optional
-B: --save-bundle
-E: --save-exact
-y: --yes
-n: --yes false
ll and la commands: ls --long

Diese Liste von Verknüpfungen kann durch Ausführen des folgenden Befehls abgerufen werden:

$ npm help 7 config
DevWL
quelle
7

Ab npm 5 ist es günstiger, --save-prod(oder -P) zu verwenden, als --savedasselbe zu tun, wie in der npm-Installation angegeben . Funktioniert bisher --savenoch wenn vorhanden.

Themenfeld
quelle
Dies muss nach oben gehen, um uns allen das Lesen von Variationen, Widersprüchen und Fadenentführungen zu ersparen. SO muss prägnante Antworten mit gültigen URLs fördern, damit wir CRUD vermeiden und mit unserer Arbeit fortfahren können. (Quora hat ein ordentliches 'Ist diese Antwort relevant' usw. und ich hatte SO schon vorher vorgeschlagen, dies zu tun.) \ N Es ist schade, dass das offizielle Knotendokument ältere (nicht mehr existierende) Optionen nicht erwähnt und die meisten Knotenreferenzen vorab zu sein scheinen -5.0, unsere Köpfe für eine Drehung senden.
Killjoy
6

Ab npm 5 wird npm standardmäßig gespeichert. Falls Sie möchten, dass npm auf ähnliche Weise (ohne automatische Speicherung) wie in früheren Versionen funktioniert, können Sie die Konfigurationsoption aktualisieren, um die automatische Speicherung wie folgt zu aktivieren.

npm config set save false

Um die aktuelle Einstellung zu erhalten, können Sie den folgenden Befehl ausführen:

npm config get save

Quelle: https://blog.pusher.com/what-you-need-know-npm-5/

Rajesh Kumar
quelle
6

npm install package_x --save

Das angegebene Paket (package_x) wird in package.json in Abhängigkeiten gespeichert. wenn Sie hinzufügen

npm install <<package_x>> --save-dev

dann wird es in devDependencies gespeichert .

Nizam Deen
quelle
12
Was trägt Ihre Antwort dazu bei, dass andere Antworten noch nicht behandelt wurden?
Pedro A
@Pedro A - Mein Verdacht ist, dass der Typ neu schreibt, was er gerade gelesen hat; dann lassen ihn seine Freunde abstimmen.
IAM_AL_X
3

Die einfachere (und fantastischere) Möglichkeit, Abhängigkeiten zu package.json hinzuzufügen, besteht darin, dies über die Befehlszeile zu tun und den Befehl npm install entweder mit --save oder --save-dev zu kennzeichnen, je nachdem, wie Sie möchten Verwenden Sie diese Abhängigkeit.

Rubin Bhandari
quelle
3

npm install --saveoder npm install --save-devwarum wir bei der Installation des Pakets in unserem Projekt 1 Option zwischen diesen beiden auswählen.

Aus den obigen Antworten geht hervor, dass npm install --saveein Eintrag in das dependencyFeld in der pacakage.jsonDatei und ein anderer in hinzugefügt wird dev-dependency.

Es stellt sich also die Frage, warum wir unser Installationsmodul in die Datei pacakge.json eingeben müssen, denn wenn wir Code einchecken gitoder jemandem unseren Code geben, geben wir ihn immer oder ohne ihn ein, node-modulesweil er sehr groß ist und auch unter verfügbar ist alltäglicher Ort, um dies zu vermeiden, tun wir das.

Wie also eine andere Person alle Module erhält, die speziell für dieses Projekt benötigt werden, ist eine from the package.jsonDatei mit dem Eintrag aller erforderlichen Pakete zum Ausführen oder Entwickeln dieses Projekts.

Nachdem der Code- we simply need to run the npm installBefehl abgerufen wurde, liest er die Datei package.json und installiert die erforderlichen erforderlichen Pakete.

Sunny Goel
quelle
2

npm i (Paketname) --save

Mit dem obigen Befehl müssen wir einfach keinen Paketnamen in Ihre package.json-Datei schreiben. Der Name und die Abhängigkeit werden automatisch mit der Version hinzugefügt, die Sie zu einem Zeitpunkt benötigen, zu dem Sie die Produktion starten oder ein anderes Mal einrichten.

npm Hilfe installieren

Der obige Befehl hilft Ihnen dabei, mehr Optionen herauszufinden und die im Bild gezeigte def.shead zu korrigieren Geben Sie hier die Bildbeschreibung ein

Nitin.
quelle