Cos'è l'opzione --save per l'installazione di npm?


2039

Ho visto alcuni tutorial in cui il comando era:

npm install --save

Cosa fa il --save opzione?

Impossibile trovare la risposta su Google.


32
@ Tom- --save: Package will appear in your dependencies.
WiredPrairie,

7
Puoi usare la scorciatoia -S e -D lì -S è --save e -D è '--save-dev. --save (o semplice -S): il pacchetto apparirà nelle tue dipendenze. --save-dev (o simple -D): il pacchetto apparirà in devDependencies.
Gil Epshtain,

5
@WiredPrairie grazie ci stavo provando npm install (--help | -h | -help ..)e niente.
juliangonzalez,

2
grazie @Dmitri, ho avuto lo stesso problema. dai NPM aggiungilo alla tua pagina MAN per il tuo strumento
Erdinc Ay

67
Non capisco la logica alla base della decisione di rimuovere anche solo una menzione di questa opzione dai documenti e dalla pagina di aiuto senza deprecarla, almeno, con un avvertimento nello strumento stesso. Nel frattempo i neofiti sono esposti ad esso attraverso miliardi di tutorial. Quindi provano a scoprire cosa fa e devono perdere 20 minuti a leggere i documenti, per finire infine a leggere la cronologia npm su stackoverflow. Stranamente prevenire questo tipo di enorme perdita di tempo (se la popolarità della domanda è indicativa) è uno degli scopi della documentazione.
Michael Ekoka,

Risposte:


2479

Aggiornamento npm 5:

A partire da npm 5.0.0 , i moduli installati vengono aggiunti come dipendenza per impostazione predefinita, quindi l' --saveopzione non è più necessaria. Le altre opzioni di salvataggio esistono ancora e sono elencate nella documentazione per npm install.

Risposta originale:

Prima della versione 5, NPM installava semplicemente un pacchetto node_modulesper impostazione predefinita. Quando stavi provando a installare dipendenze per la tua app / modulo, dovresti prima installarli e quindi aggiungerli (insieme al numero di versione appropriato) alla dependenciessezione della tua package.json.

L' --saveopzione ha richiesto a NPM di includere automaticamente il pacchetto all'interno della dependenciessezione del tuo package.json, risparmiando così un ulteriore passaggio.

Inoltre, ci sono le opzioni complementari --save-deve --save-optionalche salvano il pacchetto sotto devDependenciese optionalDependencies, rispettivamente. Ciò è utile durante l'installazione di pacchetti di solo sviluppo, come grunto la libreria di test.


141
Seriamente, questo è documentato da qualche parte? Non sono riuscito a trovarlo su Google o nella guida npm.
Christian Ternus,

112
Sarebbe bello se la documentazione per questo apparisse quando npm install --helpveniva usata.
Mark Stosberg,

11
@jimsmith: a partire da npm 5.0, è l'impostazione predefinita.
voithos,

3
"Npm update" su NPM 5 modifica package.json per impostazione predefinita?
Igor Okorokov,

6
@voithos Per me NPM 5 aggiorna le versioni del pacchetto in package.json. Per evitarlo, devo eseguire 'npm update --no-save'
Igor Okorokov,

219

Per aggiungere un pacchetto nelle dipendenze:

npm install my_dep --save

o

npm install my_dep -S

o

npm i my_dep -S

Per aggiungere il pacchetto in devDependencies

npm install my_test_framework --save-dev

o

npm install my_test_framework -D

o

npm i my_test_framework -D

package.json inserisci qui la descrizione dell'immagine


30
fare attenzione a utilizzare le versioni dei collegamenti come -S -Ddevono essere maiuscole. Faccio sempre questo errore e npm non si lamenta né lo aggiunge a package.json
Murray Wynnes

7
Non si lamenta perché -s(lettere minuscole) è per l' --silentopzione, ed -dè per informazioni su Google che sono entrambe scorciatoie valide.
tanvi,

131

Non farà nulla se non si dispone di un package.jsonfile. Inizia correndo npm initper crearne uno. Poi chiamate a npm install --saveo npm install --save-devo npm install --save-optionalaggiornerà il package.jsonper elencare le dipendenze.


37
Ho appena scoperto che funziona retroattivamente (sembra). Puoi eseguire il tuo npm install --save-devprimo, quindi npm init e il tuo package.json sarà popolato.
Jacob Wang,

20

secondo NPM Doc

inserisci qui la descrizione dell'immagine

Quindi sembra che eseguendo npm install package_name, la dipendenza del pacchetto debba essere aggiunta automaticamente a package.json giusto?


1
Immagino che
no

Vedo, npm config ls -lmostra che per impostazione predefinita, le opzioni save-xxx sono tutte false, solo il salvataggio è vero.
ROROROOROROR,

Sembra che npm non genererà alcun errore se si inserisce un'opzione nessuna, come --save-xxxxxx. Lo ignora e il comportamento predefinito - salva-prod avrà effetto. Forse --save viene da una vecchia versione di npm.
leon

13

Puoi anche usare -S, -Do -Pche equivalgono a salvare il pacchetto in una dipendenza app, una dipendenza dev o una dipendenza prod. Vedi più scorciatoie NPM di seguito:

-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

Questo elenco di collegamenti può essere ottenuto eseguendo il comando seguente:

$ npm help 7 config

7

A partire da npm 5, è più vantaggioso usare --save-prod(o -P) che --savefare la stessa cosa, come indicato in npm install . Finora --savefunziona ancora se fornito.


Questo deve andare in cima per salvarci tutti un pugno nell'occhio leggendo variazioni, contraddizioni e dirottamenti di thread. SO deve incoraggiare risposte sintetiche con URL validi in modo da poter evitare CRUD e andare avanti con il nostro lavoro. (Quora ha un chiaro 'È pertinente questa risposta', ecc. E avevo anche prima suggerito a SO di farlo) -5,0, mandando le nostre teste a fare un giro.
killjoy,

6

A partire da npm 5, npm ora salverà per impostazione predefinita. Nel caso, se si desidera che npm funzioni in modo simile (senza salvataggio automatico) a come funzionava nelle versioni precedenti, è possibile aggiornare l'opzione di configurazione per abilitare il salvataggio automatico come di seguito.

npm config set save false

Per ottenere l'impostazione corrente, è possibile eseguire il comando seguente:

npm config get save

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


6

npm install package_x --save

Il pacchetto specificato (package_x) verrà salvato in package.json all'interno delle dipendenze. se aggiungi

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

quindi verrà salvato all'interno di devDependencies .


12
Cosa contribuisce la tua risposta che altre risposte non hanno già coperto?
Pedro A,

@Pedro A - Il mio sospetto è che il ragazzo riscriva ciò che ha appena letto; poi i suoi amici gli danno voti positivi.
IAM_AL_X

3

Il modo più semplice (e più fantastico) per aggiungere dipendenze al tuo package.json è farlo dalla riga di comando, contrassegnando il comando npm install con --save o --save-dev, a seconda di come desideri usa quella dipendenza.


3

npm install --save o npm install --save-dev perché scegliamo 1 opzioni tra queste due durante l'installazione del pacchetto nel nostro progetto.

le cose sono chiare dalle risposte sopra che npm install --saveaggiungeranno la voce nel dependencycampo nel pacakage.jsonfile e l'altra indev-dependency .

Quindi sorge la domanda sul perché abbiamo bisogno di inserire il nostro modulo di installazione nel file pacakge.json perché ogni volta che effettuiamo il check-in del codice gito diamo il nostro codice a qualcuno lo diamo sempre o lo controlliamo senzanode-modules perché è di dimensioni molto grandi e disponibile anche su luogo comune quindi per evitare questo lo facciamo.

quindi come l'altra persona otterrà tutti i moduli che sono specificamente o necessari per quel progetto, quindi le risposte sono from the package.json file che hanno la voce di tutti i pacchetti richiesti per eseguire o sviluppare quel progetto.

quindi dopo aver ottenuto il we simply need to run the npm installcomando code leggerà il file package.json e installerà i pacchetti necessari necessari.


2

npm i (Nome pacchetto) --save

Semplicemente, usando il comando sopra non avremo bisogno di scrivere il nome del pacchetto nel tuo file package.json, aggiungerà automaticamente il suo nome e la sua dipendenza con la versione che ti occorrerà al momento della produzione o della configurazione un'altra volta.

npm help install

Sopra il comando ti aiuterò a scoprire più opzioni e correggere def. Mostrato in foto inserisci qui la descrizione dell'immagine

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.