La différence entre --save
et --save-dev
peut ne pas être immédiatement perceptible si vous les avez essayés tous les deux sur vos propres projets. Voici donc quelques exemples ...
Supposons que vous construisiez une application qui utilisait le package moment pour analyser et afficher les dates. Votre application est un planificateur, elle a donc vraiment besoin de ce package pour fonctionner, comme dans: ne peut pas fonctionner sans lui . Dans ce cas, vous utiliseriez
npm install moment --save
Cela créerait une nouvelle valeur dans votre package.json
"dependencies": {
...
"moment": "^2.17.1"
}
Lorsque vous développez, cela aide vraiment d'utiliser des outils tels que des suites de tests et peut avoir besoin de jasmine-core et de karma . Dans ce cas, vous utiliseriez
npm install jasmine-core --save-dev
npm install karma --save-dev
Cela créerait également une nouvelle valeur dans votre package.json
"devDependencies": {
...
"jasmine-core": "^2.5.2",
"karma": "^1.4.1",
}
Vous n'avez pas besoin de la suite de tests pour exécuter l'application dans son état normal, c'est donc une --save-dev
dépendance de type, rien de plus. Vous pouvez voir comment, si vous ne comprenez pas ce qui se passe réellement, c'est un peu difficile à imaginer.
Extrait directement de NPM docs docs # dependencies
Dépendances
Les dépendances sont spécifiées dans un objet simple qui mappe un nom de package à une plage de versions. La plage de versions est une chaîne qui a un ou plusieurs descripteurs séparés par des espaces. Les dépendances peuvent également être identifiées par une URL tarball ou git.
Veuillez ne pas mettre de faisceaux de test ou de transpilateurs dans votre objet de dépendances. Voir devDependencies , ci-dessous.
Même dans la documentation, il vous demande d'utiliser --save-dev pour les modules tels que les faisceaux de test.
J'espère que cela aide et est clair.