293 votes

Que signifie -save-dev dans npm install grunt --save-dev

Je viens de commencer à utiliser Grunt.js . Il est assez difficile à mettre en place et j'en suis au point de créer une package.json fichier.

Suite à cette tutoriel il est dit qu'il y a 3 façons de créer une package.json fichier.

La première consiste à faire npm install grunt --save-dev

Mais qu'est-ce que --save-dev signifie ? J'ai essayé de chercher mais c'est en vain.

0 votes

Je pense que j'ai réussi à trouver quelques réponses. gruntjs.com/getting-started (en anglais) - npmjs.org/doc/json.html#devDependencies

0 votes

Lien du tutoriel brisé

328voto

Andreas Hultgren Points 4235

--save-dev : Le paquet apparaîtra dans vos devDependencies.

Selon le npm install docs .

Si quelqu'un prévoit de télécharger et d'utiliser votre module dans son programme, il n'a probablement pas envie ou besoin de télécharger et de construire le test externe ou le cadre de documentation que vous utilisez.

En d'autres termes, lorsque vous exécutez npm install les devDependencies de votre projet seront installées, mais les devDependencies des paquets dont votre application dépend ne seront pas installées ; de plus, les autres applications ayant votre application comme dépendance n'ont pas besoin d'installer vos devDependencies. Ces modules ne devraient être nécessaires que lors du développement de l'application (par exemple grunt, mocha, etc.).

Selon le docs package.json

Edit : Tentative de visualisation de ce que npm install fait :

  • votreprojet
    • dépendance installée
      • dépendance installée
        • dépendance installée
        • devDependency NON installé
      • devDependency NON installé
    • devDépendance installée
      • dépendance installée
      • devDependency NON installé

2 votes

Par défaut, il ne s'installe pas avec les dépendances dev mais comment faire pour l'installer avec alors ? npm install --dev drapeau ?

4 votes

@stanzheng Je ne suis pas sûr de ce que vous avez besoin de savoir. Si vous êtes dans un projet et que vous exécutez npm install les devDependencies du projet seront également installées. Vous ne voulez pas que les devDependencies d'une dépendance soient installées. Si vous voulez développer sur un paquet npm, vous devriez git clone xxx ce projet, et lancez npm install en elle.

3 votes

"Les devDependencies pour les dépendances de votre application ne seront pas installées lorsque vous exécuterez npm install" est incorrect. Si j'ai un package.json et qu'il ne contient que des "devDependencies" avec mes packages npm, et que je tape ensuite "npm install", ces "devDependecies" seront installées.

108voto

Lonnie Best Points 608

Il existe (au moins) deux types de dépendances de paquet que vous pouvez indiquer dans vos fichiers package.json :

  1. Les paquets qui sont nécessaires pour utiliser votre module sont répertoriés dans la propriété "dependencies". En utilisant npm, vous pouvez ajouter ces dépendances à votre fichier package.json de cette façon :

    npm install --save packageName
  2. Ces paquets sont nécessaires afin d'aider développer votre module sont répertoriés sous la propriété "devDependencies". Ces paquets ne sont pas nécessaires pour que les autres utilisent le module, mais s'ils veulent aider à développer le module, ces paquets seront nécessaires. En utilisant npm, vous pouvez ajouter ces devDependencies à votre fichier package.json de cette façon :

    npm install --save-dev packageName

35voto

machinehead115 Points 1547

Pour compléter la réponse d'Andreas, vous pouvez installer uniquement les dépendances en utilisant :

npm install --production

11voto

Sathesh Points 467

Lorsque vous utilisez le paramètre "--save", votre dépendance sera placée dans le #1 ci-dessous du package.json. Si vous utilisez le paramètre "--save-dev", votre dépendance sera placée dans le #2 ci-dessous dans le package.json.

1. "dépendances" : ces paquets sont requis par votre application en production.

2. "devDependencies" : ces paquets sont uniquement nécessaires pour le développement et les tests.

7voto

Niko Kovacevic Points 378

Documentation de npm pour npm install <package-name> --save et npm install <package-name> --save-dev peuvent être trouvés ici :

https://docs.npmjs.com/getting-started/using-a-package.json#the-save-and-save-dev-install-flags

A package.json déclare les métadonnées du module que vous développez. Les deux commandes susmentionnées modifient ce fichier package.json fichier. --save déclarera le paquet installé (dans ce cas, grunt ) comme dépendance de votre module ; --save-dev le déclarera comme une dépendance pour le développement de votre module.

Posez-vous la question suivante : le paquet installé sera-t-il nécessaire pour l'utilisation de mon module, ou sera-t-il seulement nécessaire pour le développer ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X