human
Quelle est la différence entre:
```npm install [nom_du_paquet]
```
et:
```npm install [nom_du_paquet] --save
```
et:
```npm install [nom_du_paquet] --save-dev
```
Que cela signifie-t-il ? Et quel est réellement l'effet des mots-clés ```--save``` et ```--save-dev```
gpt
La différence entre ```--save``` et ```--save-dev``` peut ne pas être immédiatement perceptible si vous les avez tous les deux essayés sur vos propres projets. Voici donc quelques exemples...
Supposons que vous construisiez une application qui utilise le paquet moment pour analyser et afficher des dates. Votre application est un planificateur, donc elle a vraiment besoin de ce paquet pour fonctionner, c'est-à-dire qu'elle 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
```&quot;dependencies&quot;: {
   ...
   &quot;moment&quot;: &quot;^2.17.1&quot;
}
```
Lorsque vous développez, il est vraiment utile d'utiliser des outils tels que des suites de tests et vous pourriez avoir besoin de jasmine-core et 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
```&quot;devDependencies&quot;: {
    ...
    &quot;jasmine-core&quot;: &quot;^2.5.2&quot;,
    &quot;karma&quot;: &quot;^1.4.1&quot;,
}
```
Vous n'avez pas besoin de la suite de tests pour exécuter l'application dans son état normal, donc c'est une dépendance de type ```--save-dev```, rien de plus. Vous pouvez voir comment, si vous ne comprenez pas ce qui se passe réellement, il est un peu difficile de l'imaginer.
Extrait directement de la documentation NPM docs#dependencies

> Dépendances 
> Les dépendances sont spécifiées dans un objet simple qui fait correspondre un nom de paquet à 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 un tarball ou une URL Git. Veuillez ne pas mettre de harnais de test ou de transpilers dans votre objet de dépendances. Voir devDependencies, ci-dessous.

Même dans la documentation, il vous demande d'utiliser ```--save-dev``` pour des modules tels que des harnais de test.