La différence entre npm install --save-dev et --save

Astucejavascript

Publié par le (7327 lectures)

npm

Lorsqu'on utilise npm, le gestionnaire de paquets le plus courant pour Node, deux options s'offrent à nous pour installer un nouveau paquet.

npm

npm install --save installe un package (paquet) et l'ajoute à la section dependencies de votre fichier package.json. Cela signifie que le package est nécessaire pour votre application à exécuter et sera installé sur les machines des utilisateurs finaux lorsque vous publierez votre application.

Par exemple npm install --save lodash va produire le fichier package.json suivant

{
  "dependencies": {
    "lodash": "^4.17.21"
  }
}

npm install --save-dev installe un package et l'ajoute à la section devDependencies de votre fichier package.json. Cela signifie que le package est nécessaire pour le développement de votre application, mais pas pour son exécution. Par exemple, vous pourriez utiliser un outil de linting lors de votre développement tel qu'eslint, mais il ne serait pas nécessaire pour l'exécution de l'application. Ces fichiers ne seront pas installés sur le serveur de production ou sur les machines des utilisateurs finaux car ils y seraient inutiles, et pour certains pourraient présenter des failles de sécurité.

Par exemple npm install --save-dev eslint va modifier le précédent fichier package.json :

{
  "dependencies": {
    "lodash": "^4.17.21"
  },
  "devDependencies": {
    "eslint": "^8.33.0"
  }
}

Dans les deux cas, les fichiers téléchargés se retrouvent bien dans le dossier node_modules.

Vous pouvez aussi utiliser la commande npm install --production pour n'installer que les paquets listés dans dependencies. Si vous voulez aussi installer les paquets listés dans devDependencies, vous utiliserez la commande npm install --development.

Ces commandes sont souvent déjà exploitées par les différents scripts embarqués par les frameworks (Vue, React, etc) pour leurs tâches de développement, compilation, déploiement.

Commenter

Vous devez être inscrit et identifié pour utiliser cette fonction.

Connectez-vous (déjà inscrit)

Oubli de mot de passe ? Pas de panique, on va le retrouver

Pas encore inscrit ? C'est très simple et gratuit.