C'è un breve comando per spostare un modulo da devDependencies
a dependencies
in 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?
C'è un breve comando per spostare un modulo da devDependencies
a dependencies
in 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:
Sì! per spostare un modulo da devDependencies
a dependencies
:
npm install <module_name> --save-prod
Se vuoi fare il contrario (ovvero spostare un modulo da dependencies
a devDependencies
) fai semplicemente:
npm install <module_name> --save-dev
o stenografia:
npm i <module_name> -D
stenografia per passare da devDependencies
a dependencies
(prod):
npm i <module_name> -P
npm i module-example -D
funzionerà anche per passare da prod a dev, così come npm i module-example -P
per passare da dev a prod dipendenze
yarn remove <module_name>
e quindi aggiungerlo nuovamente in devDependencies conyarn add <module_name> --dev
In filato:
Sposta un modulo da devDependencies
a dependencies
:
yarn remove <module_name> --dev && yarn add <module_name>
Sposta un modulo da dependencies
a 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.
dependencies
di devDependencies
senza rimuovere e ri-aggiungendo?
&&
con &
.
Il problema con l'utilizzo dei comandi npm
o 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 devDependencies
dall'oggetto dependencies
all'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 install
successiva per correggere eventuali flag nei file di blocco.
dependencies
sezione di primo livello package-lock.json
, ogni voce ha potenzialmente un dev
flag 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. "
Il problema dell'utilizzo di npm install è che si finisce con le versioni aggiornate. Ciò che ha funzionato per me è:
npm install
Ciò ha mantenuto intatte tutte le versioni.