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?
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:
Sì! per spostare un modulo da devDependenciesa dependencies:
npm install <module_name> --save-prod
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
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
yarn remove <module_name>e quindi aggiungerlo nuovamente in devDependencies conyarn add <module_name> --dev
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.
dependenciesdi devDependenciessenza rimuovere e ri-aggiungendo?
&&con &.
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.
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. "
Il problema dell'utilizzo di npm install è che si finisce con le versioni aggiornate. Ciò che ha funzionato per me è:
npm installCiò ha mantenuto intatte tutte le versioni.