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.