Antworten:
npm install <package_name> --saveInstalliert das Paket und aktualisiert die Abhängigkeiten in Ihrer package.json. Da diese Frage gestellt wurde, wurde npm geändert --save, sodass dies die Standardoption ist, sodass Sie --savedie Abhängigkeiten nicht aktualisieren müssen.
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-devaktualisiert das devDependenciesin 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 npm-Installation sind 3 exklusive, optionale Flags erforderlich, mit denen die Paketversion in Ihrem Hauptpaket gespeichert oder aktualisiert wird.
-S, --save: 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 verwenden, um Abhängigkeiten in Ihrer package.json zu speichern, gibt es ein zusätzliches optionales Flag:
-E, --save-exact: Gespeicherte Abhängigkeiten werden mit einer genauen Version konfiguriert, anstatt den Standard-Semverbereichsoperator von npm zu verwenden. Wenn Sie eine npm-shrinkwrap.json haben, wird diese ebenfalls aktualisiert.
<scope>es 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: Wenn eine Datei oder ein Ordner mit dem Namen vorhanden ist <name> im aktuellen Arbeitsverzeichnis , wird versucht, diese zu installieren, und es wird nur versucht, das Paket nach Namen abzurufen, wenn es nicht gültig ist.
(aus offiziellen Dokumenten) https://docs.npmjs.com/cli/install
--saveOption scheint zwar weiterhin zu funktionieren, ist jedoch nicht mehr erforderlich. Die Pakete werden jetzt standardmäßig in Abhängigkeiten gespeichert . Die Logik ist jetzt umgekehrt - wenn Sie Ihr Paket nicht speichern möchten, müssen Sie angeben--no-save
Das --save Flagge erfüllt keinen Zweck mehr.
Wie in den anderen Antworten bereits erwähnt, hat das --saveFlag zuvor die Abhängigkeiten in der Projektdatei aktualisiert package.json, jedochnpm install enthält jetzt standardmäßig diese Funktionalität.
Wenn Sie verhindern möchten, dass npm installAbhängigkeiten gespeichert werden, müssen Sie an dieser Stelle das --no-saveFlag verwenden.
Vielen Dank an Coruscate5 für die Erwähnung in ihrem Kommentar .
Weitere Informationen in der Dokumentation zur npm-Installation :
Bei der npm-Installation werden alle angegebenen Pakete standardmäßig in Abhängigkeiten gespeichert. Darüber hinaus können Sie mit einigen zusätzlichen Flags steuern, wo und wie sie gespeichert werden:
-P, --save-prod: Das Paket wird in Ihren Abhängigkeiten angezeigt. Dies ist die Standardeinstellung, sofern nicht -D oder -O vorhanden sind.
-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 verwenden, um Abhängigkeiten in Ihrer package.json zu speichern, gibt es zwei zusätzliche optionale Flags:
-E, --save-genaue: Gespeicherte Abhängigkeiten werden mit einer exakten Version konfiguriert, anstatt den Standard-Semverbereichsoperator von npm zu verwenden.
-B, --save-bundle: Gespeicherte Abhängigkeiten werden ebenfalls zu Ihrer bundleDependencies-Liste hinzugefügt.