Vedo le istruzioni per installare un pacchetto con entrambi
npm install <package_name>
o
npm install <package_name> --save
o
npm install <package_name> --save-dev
Qual è la differenza tra queste opzioni?
Risposte:
npm install <package_name> --save
installa il pacchetto e aggiorna le dipendenze nel tuo package.json. Poiché è stata posta questa domanda, è stata apportata una modifica a npm, tale che --save
è diventata l'opzione predefinita, quindi non è necessario utilizzare --save
per aggiornare le dipendenze.
npm install <package_name> --no_save
installa il pacchetto ma non aggiorna le dipendenze elencate in package.json.
npm install <package_name> ---save-dev
aggiorna il devDependencies
nel tuo pacchetto. Questi sono usati solo per test e sviluppo locali.
Puoi leggere di più su https://docs.npmjs.com/getting-started/using-a-package.json .
L'installazione di npm richiede 3 flag esclusivi e opzionali che salvano o aggiornano la versione del pacchetto nel pacchetto principale.json:
-S, --save
: Il pacchetto apparirà nelle tue dipendenze.
-D, --save-dev
: Il pacchetto apparirà nelle tue devDependencies.
-O, --save-optional
: Il pacchetto apparirà nelle tue dipendenze opzionali.
Quando si utilizza una delle opzioni precedenti per salvare le dipendenze nel proprio package.json, è presente un flag aggiuntivo opzionale:
-E, --save-exact
: Le dipendenze salvate verranno configurate con una versione esatta anziché utilizzando l'operatore di intervallo semver predefinito di npm. Inoltre, se hai un file npm-shrinkwrap.json, anche questo verrà aggiornato.
<scope>
è opzionale. Il pacchetto verrà scaricato dal registro associato all'ambito specificato. Se nessun registro è associato all'ambito specificato, viene utilizzato il registro predefinito. Vedi npm-scope.
Nota: se non includi il simbolo @ nel nome dell'ambito, npm lo interpreterà invece come un repository GitHub, vedi sotto. Anche i nomi degli ambiti devono essere seguiti da una barra.
Esempi:
npm install sax --save
npm install githubname/reponame
npm install @myorg/privatepackage
npm install node-tap --save-dev
npm install dtrace-provider --save-optional
npm install readable-stream --save --save-exact
Nota: se è presente un file o una cartella denominati <name>
nella directory di lavoro corrente, tenterà di installarli e tenterà di recuperare il pacchetto per nome solo se non è valido.
(da documenti ufficiali) https://docs.npmjs.com/cli/install
--save
opzione sembri ancora funzionare, non è più necessaria: i pacchetti vengono ora salvati nelle dipendenze per impostazione predefinita . La logica ora è invertita - se non vuoi salvare il tuo pacchetto, devi specificare--no-save
La --save
bandiera non ha più uno scopo.
In precedenza, come notato nelle altre risposte, il --save
flag aggiornava le dipendenze nel package.json
file del progetto , ma npm install
ora include questa funzionalità per impostazione predefinita.
A questo punto se vuoi impedire il npm install
salvataggio delle dipendenze, devi usare il --no-save
flag.
Grazie a Coruscate5 per averlo menzionato nel loro commento .
Maggiori informazioni nella documentazione di installazione di npm :
npm install salva tutti i pacchetti specificati nelle dipendenze per impostazione predefinita. Inoltre, puoi controllare dove e come vengono salvati con alcuni flag aggiuntivi:
-P, --save-prod: il pacchetto apparirà nelle tue dipendenze. Questa è l'impostazione predefinita a meno che non siano presenti -D o -O.
-D, --save-dev: il pacchetto apparirà nelle tue devDependencies.
-O, --save-optional: il pacchetto apparirà nelle tue dipendenze opzionali.
--no-save: impedisce il salvataggio nelle dipendenze.
Quando si utilizza una delle opzioni precedenti per salvare le dipendenze nel proprio package.json, ci sono due flag aggiuntivi opzionali:
-E, --save-exact: le dipendenze salvate verranno configurate con una versione esatta invece di usare l'operatore di intervallo semver predefinito di npm.
-B, --save-bundle: anche le dipendenze salvate verranno aggiunte all'elenco bundleDependencies.