wake-up-neo.com

Was machen die --save Flags mit npm install?

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?

55
Obromios

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 .

31
Obromios

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

41
Orange WebDev

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.

15
2xj