Come si reinstallano le dipendenze di un'app usando npm?


385

Esiste un modo semplice per reinstallare tutti i pacchetti da cui dipende la mia app (ovvero si trovano nella cartella node_modules delle mie app)?


4
npm rebuildpotrebbe anche aiutare alcuni problemi con le dipendenze native
Francisco Presencia,

1
Nel caso in cui aiuti gli altri: se stai solo cercando di reinstallare un pacchetto, npm update <packageName>funziona benissimo
rinogo

Risposte:


618

Il modo più semplice che posso vedere è eliminare la node_modulescartella ed eseguire npm install.


28
Concordato; supponendo che tu abbia creato un package.jsonfile per la tua app.
JohnnyHK,

9
Attenzione che l'esecuzione npm installdopo la rimozione della node_modulesdirectory può comportare il rilascio di versioni diverse delle dipendenze definite package.json. Se hai bisogno di versioni molto specifiche di dipendenze per la tua app, fai attenzione e npm shrinkwrapcontrolla o controlla nella tua node_modulesdirectory per il controllo del codice sorgente.
smithclay,

10
@smithclay Ho definito la versione esplicita dei pacchetti in package.json della mia app, quindi dovrebbe andare bene, giusto?
trusktr,

@vadim Stavo facendo alcuni test sul comportamento di npm installe reinstalla sempre le dipendenze e aggiorna i pacchetti alle ultime versioni come consentito da package.json. Quindi node_modulesnon è necessario rimuovere le cartelle a meno che non si pensi che sia danneggiato. C'è un motivo per cui pensi che dovrebbe essere rimosso? Tuttavia, se l'intenzione è quella di rimuovere tutti i pacchetti che sono estranei, è possibile eseguire npm pruneinvece
himanshu,

1
@himanshu hai ragione, npm installaggiorna tutti i moduli allo stato package.json. Ma la domanda è come reinstallare tutti i pacchetti . Quindi potrebbero essere danneggiati o potrebbe essere necessario ricostruire le parti binarie dopo l'aggiornamento verison node.js.
Vadim Baryshev,

96

Il modo giusto è eseguire npm update. È un comando davvero potente, aggiorna i pacchetti mancanti e verifica anche se è possibile utilizzare una versione più recente del pacchetto già installato.

Leggi Introduzione a NPM per capire cosa puoi fare con npm.


58
Ma se non esiste un pacchetto più recente, questo non farà nulla, giusto? Sto cercando di forzare la reinstallazione anche se il pacchetto è già all'ultima versione.
trusktr,

2
Se non ci sono pacchetti mancanti, controllerà se è possibile utilizzare le ultime versioni dei pacchetti (comprese le dipendenze dei pacchetti) elencate in package.json. Quindi, in sostanza, aggiornerà i pacchetti se possibile. Ma non verrà reinstallato. Se si desidera farlo utilizzando i comandi, è possibile eseguire npm uninstall <package_name>per disinstallare un pacchetto specifico o eseguire npm uninstallper disinstallare tutti i pacchetti.
himanshu,

1
Ho provato a farlo solo npm uninstallsenza specificare un pacchetto, ma questo genera un errore.
trusktr,

Avete package.json nella cartella delle cartelle in cui è stato eseguito? Se si disinstalla il pacchetto globale, sarà necessario aggiungere -g
himanshu il

1
Il link fornito è morto, puoi fornirne uno nuovo? (Ho trovato questo , ma io non sono sicuro che sia accettabile per cambiare ad esso)
Motti

64

Il più delle volte uso il seguente comando per ottenere una reinstallazione completa di tutti i moduli del nodo (assicurati di essere nella cartella del progetto).

rm -rf node_modules && npm install

È inoltre possibile eseguire npm cache cleandopo aver rimosso la node_modulescartella per assicurarsi che non vi siano dipendenze memorizzate nella cache.


48

npmaggiornato il comando CLI per installe aggiunto il --forceflag.

npm install --force

L' argomento --force(o -f) forzerà il npmrecupero delle risorse remote anche se sul disco esiste una copia locale.

Vedere npm install


Ottimo, lavora anche con 'git + github.com ...'!
Toni Bünter,

12

È possibile utilizzare il modulo di reinstallazione trovato in npm.

Dopo averlo installato, è possibile utilizzare il seguente comando:

reinstall

L'unica differenza con la rimozione manuale della node_modulescartella e l'esecuzione npm installè che questo comando cancella automaticamente la cache di npm. Quindi, puoi ottenere tre passaggi in un solo comando.

upd: npx reinstall è un modo per eseguire questo comando senza installare il pacchetto a livello globale (solo per npm5 +)


1
@ g00glen00b Ho modificato in modo che ora includa informazioni utili senza collegamenti ipertestuali
Rob

@ g00glen00b Va benissimo; non lo rende un candidato per la cancellazione. Si prega di vedere questo post - In particolare si rivolge a brevi risposte con un collegamento, a condizione che ci siano alcune informazioni utili (ad esempio, il nome della libreria) quando il collegamento ipertestuale viene rimosso
Rob


1

Per Windows puoi usare

(if exist node_modules rmdir node_modules /q /s) && npm install

che rimuove la node_modulesdirectory e npm installquindi esegue . La rimozione prima dell'installazione garantisce la reinstallazione di tutti i pacchetti.


0

Seguire questo passaggio per reinstallare i moduli nodo e aggiornarli

funziona anche se la cartella node_modules non esiste. ora eseguire il seguente comando in modo sincrono. puoi anche usare "npm update" ma penso che questo avrebbe preferito

npm outdated // not necessary to run this command, but this will show outdated dependencies

npm install -g npm-check-updates // to install the "ncu" package

ncu -u --packageFile=package.json // to update dependencies version in package.json...don't run this command if you don't need to update the version

npm install: will install dependencies in your package.json file.

se stai bene con la versione delle tue dipendenze nel tuo file package.json, non è necessario seguire questi passaggi

 npm install
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.