La differenza tra --save
e --save-dev
potrebbe non essere immediatamente evidente se le hai provate entrambe sui tuoi progetti. Quindi, ecco alcuni esempi ...
Diciamo che stavi costruendo un'app che utilizzava il pacchetto moment per analizzare e visualizzare le date. La tua app è uno scheduler, quindi ha davvero bisogno che questo pacchetto funzioni, come in: non può funzionare senza di essa . In questo caso useresti
npm install moment --save
Ciò creerebbe un nuovo valore in package.json
"dependencies": {
...
"moment": "^2.17.1"
}
Quando stai sviluppando, aiuta davvero ad usare strumenti come test suite e potrebbe aver bisogno di jasmine-core e karma . In questo caso useresti
npm install jasmine-core --save-dev
npm install karma --save-dev
Ciò creerebbe anche un nuovo valore in package.json
"devDependencies": {
...
"jasmine-core": "^2.5.2",
"karma": "^1.4.1",
}
Non è necessaria la suite di test per eseguire l'app nel suo stato normale, quindi è una --save-dev
dipendenza dal tipo, niente di più. Puoi vedere come se non capisci cosa sta realmente accadendo, è un po 'difficile da immaginare.
Tratto direttamente dai documenti NPM # dipendenze
dipendenze
Le dipendenze sono specificate in un oggetto semplice che associa il nome di un pacchetto a un intervallo di versioni. L'intervallo di versioni è una stringa che ha uno o più descrittori separati da spazi. Le dipendenze possono anche essere identificate con un tarball o un URL git.
Non inserire cablaggi di prova o transpiler nell'oggetto delle dipendenze. Vedi devDependencies , di seguito.
Anche nei documenti, ti chiede di usare --save-dev per moduli come i cablaggi di prova.
Spero che questo aiuti ed sia chiaro.