Sposta un modulo da devDependencies a dipendenze in npm package.json


154

C'è un breve comando per spostare un modulo da devDependenciesa dependenciesin package.json?

Mi ritrovo sempre a fare questo:

npm uninstall <module_name> --save-dev 
npm install <module_name> --save

C'è un approccio più breve a questo?

Risposte:


191

Sì! per spostare un modulo da devDependenciesa dependencies:

npm install <module_name> --save-prod


183

Se vuoi fare il contrario (ovvero spostare un modulo da dependenciesa devDependencies) fai semplicemente:

npm install <module_name> --save-dev

o stenografia:

npm i <module_name> -D

stenografia per passare da devDependenciesa dependencies(prod):

npm i <module_name> -P

5
Funziona per me, v5.6
Legends

1
la stenografia npm i module-example -Dfunzionerà anche per passare da prod a dev, così come npm i module-example -Pper passare da dev a prod dipendenze
Andriy

@Andriy grazie, non ci ho pensato. Aggiornerà la risposta!
Sid,

Se invece usi il filo, devi prima rimuoverlo dalle dipendenze con yarn remove <module_name>e quindi aggiungerlo nuovamente in devDependencies conyarn add <module_name> --dev
Eugenio,

16

In filato:

Sposta un modulo da devDependenciesa dependencies:

yarn remove <module_name> --dev && yarn add <module_name> 

Sposta un modulo da dependenciesa devDependencies:

yarn remove <module_name> && yarn add <module_name> --dev

Come detto nei commenti, il comando elimina effettivamente il modulo e lo reinstalla nella nuova posizione.


1
È davvero vero? Non c'è modo in filato per spostare le cose dal dependenciesdi devDependenciessenza rimuovere e ri-aggiungendo?
Londra,

@LondonRob è l'unico modo che ho trovato
yohaiz,

21
Questo non si sta muovendo, sta semplicemente cancellando il pacchetto e installandolo di nuovo
Thanveer Shah,

@seeker_of_bacon Qui non è in esecuzione nulla in background. Potresti essere confuso &&con &.
Rudolfbyker,

3

Se il tuo progetto non ha ancora un file di blocco o un file di restringimento, puoi semplicemente spostare la riga corrispondente nel tuo package.json.

(Non sto raccomandando di non usare i file di blocco)


3

Il problema con l'utilizzo dei comandi npmo yarnè che esiste la possibilità che la versione che viene aggiunta di nuovo sia una versione diversa da quella attualmente in uso. Se questo è quello che vuoi - sia una mossa che un aggiornamento - vai avanti e usa la risposta accettata.

In caso contrario, modificapackage.json semplicemente il tuo per spostare la linea devDependenciesdall'oggetto dependenciesall'oggetto (creandola se necessario). Puoi andare anche nell'altra direzione.

Il file di blocco non contiene alcuna informazione se le cose sono dipendenze prod o dev, quindi non è necessario aggiornarle. È possibile eseguire una npm/ yarn installsuccessiva per correggere eventuali flag nei file di blocco.


Sebbene sia presente una sola dependenciessezione di primo livello package-lock.json, ogni voce ha potenzialmente un devflag per indicare se si tratta di una dipendenza dev o di una dipendenza transitiva di una. Vedi docs.npmjs.com/files/package-lock.json#dev "Se [dev è] vero allora questa dipendenza è una dipendenza di sviluppo SOLO dal modulo di livello superiore o una dipendenza transitiva di uno. Questo è falso per le dipendenze che sono sia una dipendenza da sviluppo di livello superiore sia una dipendenza transitiva di una dipendenza non di sviluppo di livello superiore. "
rob3c,

0

Il problema dell'utilizzo di npm install è che si finisce con le versioni aggiornate. Ciò che ha funzionato per me è:

  1. Spostandoli nella parte prevista (sviluppatore o prod)
  2. Rimuovendoli dalla cartella node_modules
  3. Eseguire npm install

Ciò ha mantenuto intatte tutte le versioni.

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.