web-dev-qa-db-fra.com

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

Je viens de commencer à utiliser Grunt.js . C'est assez difficile à configurer et je suis sur le point de créer un fichier package.json.

Suite à cela tutoriel , il est indiqué qu'il existe 3 façons de créer un fichier package.json.

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

Mais qu'est-ce que --save-dev signifie? J'ai essayé de chercher, mais cela s'est soldé par un échec.

267
Vennsoh

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

Selon le npm install docs .

Si une personne a l'intention de télécharger et d'utiliser votre module dans son programme, elle ne veut probablement pas ou n'a pas besoin de télécharger et de construire le test externe ou la structure 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 de tous les packages dont dépend votre application ne seront pas installés. En outre, les autres applications ayant votre application en tant que dépendance n'ont pas besoin d'installer vos devDependencies. De tels modules ne devraient être nécessaires que lors du développement de l'application (par exemple, Grunt, Mocha, etc.).

Selon le package.json docs

Edit: Essayez de visualiser ce que npm install fait:

  • votre projet
    • dépendance installée
      • dépendance installée
        • dépendance installée
        • devDependency NON installé
      • devDependency NON installé
    • devDependency installé
      • dépendance installée
      • devDependency NON installé
306
Andreas Hultgren

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

  1. Les paquetages requis pour tiliser votre module sont listés sous la propriété "dependencies". Avec npm, vous pouvez ajouter ces dépendances à votre fichier package.json de la manière suivante:

    npm install --save packageName
    
  2. Ces paquets nécessaires pour aider développer votre module sont listés sous la propriété "devDependencies". Ces packages ne sont pas nécessaires pour que d'autres puissent utiliser le module, mais s'ils souhaitent contribuer au développement du module, ils seront nécessaires. Avec npm, vous pouvez ajouter ces devDependencies à votre fichier package.json de cette façon:

    npm install --save-dev packageName
    
95
Lonnie Best

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

npm install --production
33
machinehead115

La documentation de npm pour npm install <package-name> --save et npm install <package-name> --save-dev peut être trouvée ici:

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

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

Posez-vous la question suivante: le paquet installé sera-t-il requis pour utiliser mon module, ou le sera-t-il uniquement pour le développer?

6
Niko Kovacevic

Lorsque vous utilisez le paramètre "--save", votre dépendance ira dans le n ° 1 dans package.json. Lorsque vous utilisez le paramètre "--save-dev", votre dépendance ira dans le n ° 2 de package.json.

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

2) "devDependencies": ces paquetages ne sont nécessaires que pour le développement et les tests

4
Sathesh

Pour moi, la première réponse semble un peu déroutante, alors soyez bref et net:

npm install <package_name> enregistre les paquetages spécifiés dans les dépendances par par défaut . En outre, vous pouvez contrôler où et comment ils sont enregistrés avec des indicateurs supplémentaires:

npm install <package_name> --no-save Empêche l'enregistrement dans les dépendances.

npm install <package_name> ---save-dev met à jour le devDependencies de votre package. Celles-ci ne sont utilisées que pour les tests et le développement locaux.

Vous pouvez en lire plus à in the dc

1
AnnaKlein