Ich habe gerade angefangen, Grunt.js zu verwenden . Es ist ziemlich schwer einzurichten und ich bin gerade dabei, eine package.json
Datei zu erstellen.
Nach diesem Tutorial gibt es drei Möglichkeiten, eine package.json
Datei zu erstellen .
Das erste ist zu tun npm install grunt --save-dev
Aber was heißt --save-dev
das? Ich habe versucht zu suchen, aber es endet vergebens.
Antworten:
Laut den npm Installationsdokumenten .
Mit anderen Worten, wenn Sie ausführen
npm install
, werden die devDependencies Ihres Projekts installiert, aber die devDependencies für alle Pakete, von denen Ihre App abhängt, werden nicht installiert. Darüber hinaus müssen andere Apps, die Ihre App als Abhängigkeit haben, Ihre devDependencies nicht installieren. Solche Module sollten nur bei der Entwicklung der App benötigt werden (zB Grunzen, Mokka usw.).Laut package.json docs
Bearbeiten: Versuch zu visualisieren, was
npm install
tut:devDependency NICHT installiertdevDependency NICHT installiertdevDependency NICHT installiertquelle
npm install --dev
Flagge?npm install
, werden auch die devDependencies des Projekts installiert. Sie möchten nicht, dass die devDependencies einer Abhängigkeit installiert werden. Wenn Sie ein npm-Paket entwickeln möchten, müssen Siegit clone xxx
dieses Projekt ausführennpm install
.npm install
in Ihrem Projekt ausgeführt wird, werden alle devDependencies in package.json installiert. Wenn Sie Ihr Projekt jedoch als neues npm-Paket verpacken und veröffentlichen, werden die devDependencies nicht ausgeführt, wenn jemand anderes Ihr Paket mit npm install installiert auf ihrem System installiert. Ist das richtig? @stanzheng oder Sie können npm install --production ausführen, um alles in package.json außer den dev-Abhängigkeiten zu installierenEs gibt (mindestens) zwei Arten von Paketabhängigkeiten, die Sie in Ihren package.json-Dateien angeben können:
Die Pakete, die zur Verwendung Ihres Moduls erforderlich sind, werden unter der Eigenschaft "Abhängigkeiten" aufgelistet. Mit npm können Sie diese Abhängigkeiten folgendermaßen zu Ihrer package.json-Datei hinzufügen:
Die zur Entwicklung Ihres Moduls erforderlichen Pakete sind unter der Eigenschaft "devDependencies" aufgeführt. Diese Pakete sind nicht erforderlich, damit andere das Modul verwenden können. Wenn sie jedoch bei der Entwicklung des Moduls helfen möchten, werden diese Pakete benötigt. Mit npm können Sie diese devDependencies wie folgt zu Ihrer package.json-Datei hinzufügen:
quelle
Um die Antwort von Andreas zu ergänzen, können Sie nur die Abhängigkeiten installieren, indem Sie Folgendes verwenden:
quelle
Dokumentation von npm für
npm install <package-name> --save
undnpm install <package-name> --save-dev
finden Sie hier:https://docs.npmjs.com/getting-started/using-a-package.json#the-save-and-save-dev-install-flags
Eine
package.json
Datei deklariert Metadaten zu dem Modul, das Sie entwickeln. Beide oben genannten Befehle ändern diesepackage.json
Datei.--save
deklariert das installierte Paket (in diesem Fallgrunt
) als Abhängigkeit für Ihr Modul;--save-dev
deklariert es als Abhängigkeit für die Entwicklung Ihres Moduls.Fragen Sie sich: Wird das installierte Paket für die Verwendung meines Moduls benötigt oder wird es nur für die Entwicklung benötigt?
quelle
Wenn Sie den Parameter "--save" verwenden, wird Ihre Abhängigkeit in die Nummer 1 unten in package.json verschoben. Wenn Sie den Parameter "--save-dev" verwenden, wird Ihre Abhängigkeit in die Nummer 2 unten in package.json verschoben.
# 1. "Abhängigkeiten": Diese Pakete werden von Ihrer Anwendung in der Produktion benötigt.
# 2. "devDependencies": Diese Pakete werden nur zum Entwickeln und Testen benötigt
quelle
Für mich erscheint die erste Antwort etwas verwirrend, um es kurz und sauber zu machen:
npm install <package_name>
speichert alle angegebenen Pakete standardmäßig in Abhängigkeiten . Darüber hinaus können Sie mit einigen zusätzlichen Flags steuern, wo und wie sie gespeichert werden:npm install <package_name> --no-save
Verhindert das Speichern in Abhängigkeiten.npm install <package_name> ---save-dev
aktualisiert dasdevDependencies
in Ihrem Paket. Diese werden nur für lokale Tests und Entwicklungen verwendet.Sie können mehr in der DCU lesen
quelle