Cosa significa -save-dev in npm install grunt --save-dev


277

Ho appena iniziato a utilizzare Grunt.js . È piuttosto difficile da impostare e sono al punto di creare unpackage.json file.

Seguendo questo tutorial , dice che ci sono 3 modi per creare un package.jsonfile.

Il primo è da fare npm install grunt --save-dev

Ma cosa --save-devsignifica? Ho provato a guardare ma finisce invano.


Penso di riuscire a trovare alcune risposte. gruntjs.com/getting-started - npmjs.org/doc/json.html#devDipendenze
Vennsoh

collegamento del tutorial interrotto
SteveC

Risposte:


317

--save-dev: il pacchetto apparirà in devDependencies.

Secondo i documenti di installazione di npm .

Se qualcuno sta pianificando di scaricare e utilizzare il modulo nel proprio programma, probabilmente non vuole o non ha bisogno di scaricare e costruire il test esterno o il framework di documentazione che si utilizza.

In altre parole, quando corri npm install , verranno installate le devDependencies del progetto, ma le devDependencies per tutti i pacchetti da cui dipende l'app non verranno installate; inoltre, altre app che hanno la tua app come dipendenza non devono installare devDependencies. Tali moduli dovrebbero essere necessari solo durante lo sviluppo dell'app (ad esempio grugnito, moka, ecc.).

Secondo i documenti package.json

Modifica: tentativo di visualizzare cosa npm installfa:

  • ProgettoUtente
    • dipendenza installata
      • dipendenza installata
        • dipendenza installata
        • devDependency NON installato
      • devDependency NON installato
    • devDependency installato
      • dipendenza installata
      • devDependency NON installato

2
per impostazione predefinita non verrà installato con dipendenze di sviluppo, ma come installo con allora? npm install --devbandiera?
Stanley Zheng

4
@stanzheng non sono sicuro di quello che devi sapere. Se sei in un progetto ed esegui npm install, verranno installate anche devDependencies del progetto. Non si desidera installare le devDependencies di una dipendenza. Se vuoi sviluppare un pacchetto npm, avresti git clone xxxquel progetto ed eseguirlo npm install.
Andreas Hultgren,

3
"devDependencies per le dipendenze della tua app non verrà installata quando si esegue npm install" non è corretto. Se ho un package.json e contiene solo "devDependencies" con i miei pacchetti npm, e quindi digito "npm install", vengono installate quelle "devDependecies".
core

6
Ho provato a capire e non l'ho fatto. Quindi ho provato a capire la visualizzazione e non l'ho fatto. Cosa significa ogni punto elenco? Una cartella? Cosa significa l'elemento barrato? Una directory inesistente? Se questo è vero, come puoi elencare cose esaustivamente inesistenti ?
Rafael Eyng,

8
Per chiarire, se npm installviene eseguito nel tuo progetto, verranno installate tutte le devDependencies in package.json, ma se impacchetti il ​​tuo progetto come un nuovo pacchetto npm e lo pubblichi, quando qualcun altro installa il tuo pacchetto con npm install, devDependencies non sarà installato sul loro sistema. È giusto? @stanzheng oppure puoi eseguire npm install --produzione per installare tutto in package.json tranne le dipendenze dev
rwilson04

99

Esistono (almeno) due tipi di dipendenze di pacchetti che è possibile indicare nei file package.json:

  1. I pacchetti richiesti per utilizzare il modulo sono elencati nella proprietà "dipendenze". Usando npm puoi aggiungere quelle dipendenze al tuo file package.json in questo modo:

    npm install --save packageName
  2. Quei pacchetti richiesti per aiutare a sviluppare il tuo modulo sono elencati sotto la proprietà "devDependencies". Questi pacchetti non sono necessari per consentire ad altri di utilizzare il modulo, ma se vogliono aiutare a sviluppare il modulo, questi pacchetti saranno necessari. Usando npm puoi aggiungere quelle devDependencies al tuo file package.json in questo modo:

    npm install --save-dev packageName

35

Per aggiungere la risposta di Andreas, è possibile installare solo le dipendenze utilizzando:

npm install --production

7

La documentazione di npm per npm install <package-name> --savee npm install <package-name> --save-devpuò essere trovata qui:

https://docs.npmjs.com/getting-started/using-a-package.json#the-save-and-save-dev-install-flags

Un package.jsonfile dichiara i metadati sul modulo che stai sviluppando. Entrambi i comandi sopra menzionati modificano questo package.jsonfile. --savedichiarerà il pacchetto installato (in questo caso grunt) come dipendenza per il modulo;--save-devlo dichiarerà come una dipendenza per lo sviluppo del tuo modulo.

Chiediti: il pacchetto installato sarà richiesto per l'uso del mio modulo o sarà richiesto solo per svilupparlo?


6

Quando usi il parametro "--save" la tua dipendenza andrà all'interno del # 1 sotto in package.json. Quando usi il parametro "--save-dev" la tua dipendenza andrà all'interno del # 2 sotto in package.json.

# 1. "dipendenze": questi pacchetti sono richiesti dall'applicazione in produzione.

# 2. "devDependencies": questi pacchetti sono necessari solo per lo sviluppo e il testing


5

Per me la prima risposta appare un po 'confusa, quindi per renderla breve e pulita:

npm install <package_name>salva i pacchetti specificati nelle dipendenze per impostazione predefinita . Inoltre, puoi controllare dove e come vengono salvati con alcuni flag aggiuntivi:

npm install <package_name> --no-save Impedisce il salvataggio in dipendenze.

npm install <package_name> ---save-devaggiorna il devDependenciesnel tuo pacchetto. Questi sono utilizzati solo per test e sviluppo locali.

Puoi leggere di più su nel dcu

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.