Der Unterschied zwischen --save
und ist --save-dev
möglicherweise nicht sofort erkennbar, wenn Sie beide in Ihren eigenen Projekten ausprobiert haben. Also hier ein paar Beispiele ...
Nehmen wir an, Sie haben eine App erstellt, die das Moment- Paket zum Parsen und Anzeigen von Daten verwendet hat. Ihre App ist ein Scheduler, daher benötigt sie dieses Paket wirklich, um ausgeführt zu werden, wie in: Kann ohne es nicht ausgeführt werden . In diesem Fall würden Sie verwenden
npm install moment --save
Dies würde einen neuen Wert in Ihrer package.json erzeugen
"dependencies": {
...
"moment": "^2.17.1"
}
Wenn Sie sich entwickeln, ist es wirklich hilfreich, Tools wie Testsuiten zu verwenden, und möglicherweise benötigen Sie Jasmin-Kern und Karma . In diesem Fall würden Sie verwenden
npm install jasmine-core --save-dev
npm install karma --save-dev
Dies würde auch einen neuen Wert in Ihrer package.json erzeugen
"devDependencies": {
...
"jasmine-core": "^2.5.2",
"karma": "^1.4.1",
}
Sie benötigen die Testsuite nicht, um die App im normalen Zustand auszuführen. Es handelt sich also um eine --save-dev
Typabhängigkeit, nicht mehr. Sie können sehen, dass es ein bisschen schwer vorstellbar ist, wenn Sie nicht verstehen, was wirklich passiert.
Entnommen direkt aus NPM docs docs # Abhängigkeiten
Abhängigkeiten
Abhängigkeiten werden in einem einfachen Objekt angegeben, das einen Paketnamen einem Versionsbereich zuordnet. Der Versionsbereich ist eine Zeichenfolge mit einem oder mehreren durch Leerzeichen getrennten Deskriptoren. Abhängigkeiten können auch mit einer Tarball- oder Git-URL identifiziert werden.
Bitte setzen Sie keine Testkabelbäume oder Transpiler in Ihr Abhängigkeitsobjekt. Siehe devDependencies weiter unten.
Selbst in den Dokumenten werden Sie aufgefordert, --save-dev für Module wie Testkabelbäume zu verwenden.
Ich hoffe das hilft und ist klar.