Qu'est-ce que l'option --save pour l'installation de npm?

2040

J'ai vu un tutoriel où se trouvait la commande:

npm install --save

Que signifie l' --saveoption?

Impossible de trouver la réponse sur Google.

Dmitri
la source
32
@ Tom- --save: Package will appear in your dependencies.
WiredPrairie
7
Vous pouvez utiliser le raccourci -S et -D là -S est --save et -D est '--save-dev. --save (ou simple -S): le package apparaîtra dans vos dépendances. --save-dev (ou simple -D): le package apparaîtra dans vos devDependencies.
Gil Epshtain
5
@WiredPrairie merci j'essayais npm install (--help | -h | -help ..)et rien.
juliangonzalez
2
thx @Dmitri, j'ai eu le même problème. venez sur NPM ajoutez cela à votre page MAN pour votre outil
Erdinc Ay
67
Je ne comprends pas la justification de la décision de supprimer même juste une mention de cette option dans la documentation et la page d'aide sans la déprécier, au moins, avec un avertissement dans l'outil lui-même. Pendant ce temps, les débutants y sont exposés via des millions de tutoriels. Ensuite, ils essaient de découvrir ce qu'il fait et doivent perdre 20 minutes à parcourir les documents, pour finalement finir par lire l'historique npm sur stackoverflow. Curieusement, empêcher ce genre de perte de temps massive (si la popularité de la question est une indication) est l'un des objectifs de la documentation.
Michael Ekoka du

Réponses:

2479

Mise à jour npm 5:

Depuis npm 5.0.0 , les modules installés sont ajoutés en tant que dépendance par défaut, donc l' --saveoption n'est plus nécessaire. Les autres options d'enregistrement existent toujours et sont répertoriées dans la documentation de npm install.

Réponse originale:

Avant la version 5, NPM installait simplement un package sous node_modulespar défaut. Lorsque vous essayez d'installer des dépendances pour votre application / module, vous devez d'abord les installer, puis les ajouter (avec le numéro de version approprié) à la dependenciessection de votre package.json.

L' --saveoption a demandé à NPM d'inclure automatiquement le package dans la dependenciessection de votre package.json, vous évitant ainsi une étape supplémentaire.

De plus, il existe des options complémentaires --save-devet --save-optionalqui enregistrent le package sous devDependencieset optionalDependencies, respectivement. Ceci est utile lors de l'installation de packages de développement uniquement, comme gruntou de votre bibliothèque de test.

voithos
la source
141
Sérieusement, cela est-il documenté quelque part? Je ne l'ai pas trouvé sur Google ou dans l' npmaide.
Christian Ternus
112
Ce serait bien si la documentation pour cela montrait quand elle npm install --helpétait utilisée.
Mark Stosberg
11
@jimsmith: Depuis npm 5.0, c'est la valeur par défaut.
voithos
3
La "mise à jour npm" sur NPM 5 modifie-t-elle package.json par défaut?
Igor Okorokov
6
@voithos Pour moi, NPM 5 met à jour les versions des packages dans package.json. Pour l'éviter, je dois exécuter la mise à jour npm --no-save
Igor Okorokov
219

Pour ajouter un package dans les dépendances:

npm install my_dep --save

ou

npm install my_dep -S

ou

npm i my_dep -S

Pour ajouter un package dans devDependencies

npm install my_test_framework --save-dev

ou

npm install my_test_framework -D

ou

npm i my_test_framework -D

package.json entrez la description de l'image ici

Joe L.
la source
30
soyez prudent en utilisant des versions de raccourcis comme -S -Delles doivent être en majuscules. Je fais toujours cette erreur et npm ne se plaint pas et ne l'ajoute pas à package.json
Murray Wynnes
7
Il ne se plaint pas car -s(en minuscules) est pour l' --silentoption, et -dest pour les informations de niveau de journal qui sont toutes les deux des raccourcis valides.
tanvi
131

Il ne fera rien si vous n'avez pas de package.jsonfichier. Commencez par exécuter npm initpour en créer un. Ensuite, les appels à npm install --saveou npm install --save-devou npm install --save-optionalmettront à jour le package.jsonpour répertorier vos dépendances.

Nick Retallack
la source
37
Je viens de découvrir que cela fonctionne rétroactivement (il semble). Vous pouvez exécuter votre npm install --save-devpremier, puis npm init et votre package.json sera rempli.
Jacob Wang
20

selon NPM Doc

entrez la description de l'image ici

Il semble donc qu'en exécutant npm install package_name, la dépendance du package devrait être automatiquement ajoutée à package.json, n'est-ce pas?

ROROROOROROR
la source
1
Je suppose que - non-sauvegarde est à utiliser lorsque vous voulez des fonctionnalités comme npm <5
Abhiroj Panwar
Je vois, npm config ls -lmontre que par défaut, les options de sauvegarde-xxx sont toutes fausses, seule la sauvegarde est vraie.
ROROROOROROR
Il semble que npm ne déclenche aucune erreur si vous mettez une option none exist, comme --save-xxxxxx. Il suffit de l'ignorer et le comportement par défaut --save-prod sera en vigueur. Peut-être que --save vient d'une ancienne version de npm.
leon
13

Vous pouvez également utiliser -S, -Dou -Pqui équivalent à enregistrer le package dans une dépendance d'application, une dépendance de développement ou une dépendance de production. Voir plus de raccourcis NPM ci-dessous:

-v: --version
-h, -?, --help, -H: --usage
-s, --silent: --loglevel silent
-q, --quiet: --loglevel warn
-d: --loglevel info
-dd, --verbose: --loglevel verbose
-ddd: --loglevel silly
-g: --global
-C: --prefix
-l: --long
-m: --message
-p, --porcelain: --parseable
-reg: --registry
-f: --force
-desc: --description
-S: --save
-P: --save-prod
-D: --save-dev
-O: --save-optional
-B: --save-bundle
-E: --save-exact
-y: --yes
-n: --yes false
ll and la commands: ls --long

Cette liste de raccourcis peut être obtenue en exécutant la commande suivante:

$ npm help 7 config
DevWL
la source
7

À partir de npm 5, il est plus avantageux d'utiliser --save-prod(ou -P) que de --savefaire la même chose, comme indiqué dans l' installation de npm . Jusqu'à présent, --savefonctionne toujours si fourni.

le champ
la source
Cela doit aller au sommet pour nous sauver tous d'une horrible variation de lecture, de contradictions et de détournements de fils. SO doit encourager les réponses succinctes avec des URL valides afin que nous puissions éviter CRUD et continuer notre travail. (Quora a un joli 'Est-ce que cette réponse est pertinente', etc., et j'avais même déjà suggéré à SO de le faire) -5,0, envoyant nos têtes pour un tour.
killjoy
6

À partir de npm 5, npm enregistrera désormais par défaut. Dans le cas, si vous souhaitez que npm fonctionne de la même manière (sans sauvegarde automatique) que la façon dont il fonctionnait dans les versions précédentes, vous pouvez mettre à jour l'option de configuration pour activer la sauvegarde automatique comme ci-dessous.

npm config set save false

Pour obtenir le paramètre actuel, vous pouvez exécuter la commande suivante:

npm config get save

Source: https://blog.pusher.com/what-you-need-know-npm-5/

Rajesh Kumar
la source
6

npm install package_x --save

Le package donné (package_x) sera enregistré dans package.json à l'intérieur des dépendances. si vous ajoutez

npm install <<package_x>> --save-dev

puis il sera enregistré dans devDependencies .

Nizam Deen
la source
12
Qu'est-ce que votre réponse apporte que d'autres réponses n'ont pas déjà couvert?
Pedro A
@Pedro A - Je soupçonne que le gars réécrit ce qu'il vient de lire; puis ses amis lui donnent des votes.
IAM_AL_X
3

La façon la plus simple (et la plus impressionnante) d'ajouter des dépendances à votre package.json est de le faire à partir de la ligne de commande, en signalant la commande npm install avec --save ou --save-dev, selon la façon dont vous souhaitez utiliser cette dépendance.

Rubin bhandari
la source
3

npm install --saveou npm install --save-devpourquoi nous choisissons 1 options entre ces deux lors de l'installation du package dans notre projet.

les choses ressortent clairement des réponses ci-dessus qui npm install --saveajouteront une entrée dans le dependencychamp dans le pacakage.jsonfichier et une autre dans dev-dependency.

Donc, la question se pose de savoir pourquoi nous avons besoin de l'entrée de notre module d'installation dans le fichier pacakge.json parce que chaque fois que nous archivons du code gitou donnons notre code à quelqu'un, nous le donnons toujours ou le vérifions sansnode-modules car il est de très grande taille et également disponible sur lieu commun, donc pour éviter cela, nous le faisons.

Alors, comment une autre personne obtiendra-t-elle tous les modules spécifiquement ou nécessaires pour ce projet, les réponses sont donc un from the package.jsonfichier contenant l'entrée de tous les packages requis pour exécuter ou développer ce projet.

ainsi, après avoir obtenu la we simply need to run the npm installcommande de code, il lira le fichier package.json et installera les packages requis nécessaires.

Sunny Goel
la source
2

npm i (nom du package) --save

Simplement, en utilisant la commande ci-dessus, nous n'aurons pas besoin d'écrire le nom du package dans votre fichier package.json, il ajoutera automatiquement son nom et sa dépendance avec la version dont vous aurez besoin au moment où vous irez en production ou configurerez une autre fois.

npm aide à l'installation

La commande ci-dessus vous aidera à trouver plus d'options et à corriger la déf. entrez la description de l'image ici

Nitine.
la source