Ich sehe Anweisungen zum Installieren eines Pakets mit
npm install <package_name>
oder
npm install <package_name> --save
oder
npm install <package_name> --save-dev
Was ist der Unterschied zwischen diesen Optionen?
npm install <package_name> --save
Installiert das Paket und aktualisiert die Abhängigkeiten in Ihrer package.json. Da diese Frage gestellt wurde, wurde npm geändert, sodass --save
Zur Standardoption geworden ist. Sie müssen also nicht --save
Verwenden, um die Abhängigkeiten zu aktualisieren.
npm install <package_name> --no_save
Installiert das Paket, aktualisiert jedoch nicht die in Ihrer package.json aufgeführten Abhängigkeiten.
npm install <package_name> ---save-dev
Aktualisiert das devDependencies
in Ihrem Paket. Diese werden nur für lokale Tests und Entwicklungen verwendet.
Weitere Informationen finden Sie unter https://docs.npmjs.com/getting-started/using-a-package.json .
für die Installation von npm sind 3 exklusive, optionale Flags erforderlich, mit denen die Paketversion in Ihrem Hauptpaket.json gespeichert oder aktualisiert wird:
-S, --save: Das Paket wird in Ihren Abhängigkeiten angezeigt.
-D, --save-dev: Das Paket wird in Ihren devDependencies angezeigt.
-O, --save-optional: Das Paket wird in Ihren optionalen Abhängigkeiten angezeigt.
Wenn Sie eine der oben genannten Optionen zum Speichern von Abhängigkeiten in package.json verwenden, gibt es ein zusätzliches optionales Flag:
-E, --save-exact: Gespeicherte Abhängigkeiten werden mit einer genauen Version konfiguriert, anstatt den Standard-Semver-Range-Operator von npm zu verwenden. Wenn Sie eine npm-shrinkwrap.json haben, wird diese ebenfalls aktualisiert.
<scope>
Ist optional. Das Paket wird aus der Registrierung heruntergeladen, die dem angegebenen Bereich zugeordnet ist. Wenn dem angegebenen Bereich keine Registrierung zugeordnet ist, wird die Standardregistrierung angenommen. Siehe npm-scope.
Hinweis: Wenn Sie das @ -Symbol nicht in Ihren Bereichsnamen aufnehmen, interpretiert npm dies stattdessen als GitHub-Repository (siehe unten). Auf Bereichsnamen muss auch ein Schrägstrich folgen.
Beispiele:
npm install sax --save npm install githubname/reponame npm install @ myorg/privatepackage npm install node-tap --save-dev npm install dtrace-provider --save-optional npm install readable-stream --save --save-exact
Hinweis: Befindet sich eine Datei oder ein Ordner mit dem Namen <name>
Im aktuellen Arbeitsverzeichnis, wird versucht, diese zu installieren und das Paket nur nach Namen abzurufen, wenn es ungültig ist.
(aus offiziellen Dokumenten) https://docs.npmjs.com/cli/install
Das Flag --save
Erfüllt keinen Zweck mehr.
Früher wurden die Abhängigkeiten in der Datei --save
Des Projekts durch das Flag package.json
Aktualisiert, aber npm install
Enthält diese Funktionalität jetzt standardmäßig.
Wenn Sie an dieser Stelle verhindern möchten, dass npm install
Abhängigkeiten speichert, müssen Sie das Flag --no-save
Verwenden.
Vielen Dank an Coruscate5 für die Erwähnung in ihrem Kommentar .
Mehr Infos in der npm-install Dokumentation :
npm install speichert alle angegebenen Pakete standardmäßig in Abhängigkeiten. Außerdem können Sie steuern, wo und wie sie mit einigen zusätzlichen Flags gespeichert werden:
-P, --save-prod: Das Paket wird in Ihren Abhängigkeiten angezeigt. Dies ist die Standardeinstellung, es sei denn, -D oder -O sind vorhanden.
-D, --save-dev: Das Paket wird in Ihren devDependencies angezeigt.
-O, --save-optional: Das Paket wird in Ihren optionalen Abhängigkeiten angezeigt.
--no-save: Verhindert das Speichern in Abhängigkeiten.
Wenn Sie eine der oben genannten Optionen zum Speichern von Abhängigkeiten in package.json verwenden, gibt es zwei zusätzliche, optionale Flags:
-E, --save-exact: Gespeicherte Abhängigkeiten werden mit einer genauen Version konfiguriert, anstatt den Standard-Semver-Range-Operator von npm zu verwenden.
-B, --save-bundle: Gespeicherte Abhängigkeiten werden ebenfalls zu Ihrer bundleDependencies-Liste hinzugefügt.