Como você reinstala as dependências de um aplicativo usando o npm?

385

Existe uma maneira simples de reinstalar todos os pacotes dos quais meu aplicativo depende (ou seja, eles estão na pasta node_modules dos meus aplicativos)?

trusktr
fonte
4
npm rebuildpode também ajudar alguns problemas com dependências nativas
Francisco Presencia
11
Caso isso ajude outras pessoas: Se você está apenas tentando reinstalar um pacote, npm update <packageName>funciona muito bem
rinogo 14/16

Respostas:

618

A maneira mais fácil que eu posso ver é excluir a node_modulespasta e executar npm install.

Vadim Baryshev
fonte
28
Acordado; supondo que você tenha criado um package.jsonarquivo para seu aplicativo.
JohnnyHK
9
Lembre-se de que a execução npm installapós a remoção do node_modulesdiretório pode resultar em versões diferentes de dependências definidas na package.jsonretirada. Se você precisar de versões muito específicas de dependências para seu aplicativo, tenha cuidado e npm shrinkwrapverifique ou faça check-in no node_modulesdiretório para controlar a origem.
smithclay
10
@smithclay Eu defini a versão explícita dos pacotes no package.json do meu aplicativo, então isso deve ficar bem, certo?
trusktr
@ vadim Eu estava fazendo alguns testes no comportamento do npm installe ele sempre reinstala os pacotes de dependências e atualizações para as versões mais recentes, conforme permitido pelo package.json. Portanto, a remoção de node_modulespastas não é necessária, a menos que você pense que está corrompido. Existe alguma razão para você achar que deve ser removido? No entanto, se a intenção é remover quaisquer pacotes que não forem pertinentes, então você pode executar npm pruneem vez
himanshu
11
@himanshu, você está certo npm installatualiza todos os módulos para o estado package.json. Mas a questão é como reinstalar todos os pacotes . Portanto, eles podem estar corrompidos ou precisar reconstruir as partes binárias após a atualização do node.js. verison.
Vadim Baryshev 18/10/12
96

O caminho certo é executar npm update . É um comando realmente poderoso, atualiza os pacotes ausentes e também verifica se uma versão mais recente do pacote já instalado pode ser usada.

Leia Introdução ao NPM para entender o que você pode fazer com o npm.

himanshu
fonte
58
Mas se não houver um pacote mais novo, isso não fará nada, certo? Estou tentando forçar a reinstalação, mesmo que o pacote já esteja na versão mais recente.
trusktr
2
Se não houver pacotes ausentes, ele verificará se pode usar as versões mais recentes dos pacotes (incluindo dependências dos pacotes) listadas em package.json. Portanto, em essência, ele atualizará os pacotes, se possível. Mas não será reinstalado. Se você quiser fazê-lo usando comandos, poderá executar npm uninstall <package_name>a desinstalação de um pacote específico ou npm uninstalldesinstalar todos os pacotes.
himanshu
11
Eu tentei fazer apenas npm uninstallsem especificar um pacote, mas isso gera um erro.
trusktr
Você tem o package.json no diretório de pastas em que você executou isso? Se você estiver desinstalando o pacote global, precisará adicionar -g
himanshu 12/12
11
O link que você fornece está inoperante. Você pode fornecer um novo? (Encontrei isso, mas não tenho certeza se é aceitável mudar) #
Motti
64

Na maioria das vezes, uso o seguinte comando para obter uma reinstalação completa de todos os módulos do nó (verifique se você está na pasta do projeto).

rm -rf node_modules && npm install

Você também pode executar npm cache cleanapós remover a node_modulespasta para garantir que não haja dependências em cache.

0x1ad2
fonte
48

npmatualizou o comando da CLI installe adicionou o --forcesinalizador.

npm install --force

O argumento --force(ou -f) forçará npma buscar recursos remotos, mesmo que exista uma cópia local no disco.

Vejo npm install

Itsik Avidan
fonte
Ótimo, trabalhe também com 'git + github.com ...'!
Toni Bünter 13/06
12

Você pode usar o módulo de reinstalação encontrado no npm.

Após a instalação, você pode usar o seguinte comando:

reinstall

A única diferença com a remoção manual da node_modulespasta e a criação npm installé que esse comando limpa automaticamente o cache do npm. Portanto, você pode obter três etapas em um comando.

upd: npx reinstall é uma maneira de executar este comando sem instalar o pacote globalmente (apenas para o npm5 +)

deksden
fonte
11
@ g00glen00b Eu editei para que agora inclua informações úteis sem hiperlinks
Rob
@ g00glen00b Está perfeitamente bem; isso não faz dele um candidato para exclusão. Por favor, veja este post - Em particular, aborda respostas curtas com um link, desde que haja alguma informação útil (ou seja, o nome da biblioteca), quando o hiperlink é removido
Rob
6

Você pode fazer isso com um comando simples:

npm ci
Joeri
fonte
Essa é a resposta correta!
Victor Calatramas
1

Para Windows, você pode usar

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

que remove o node_modulesdiretório e executa npm installentão. A remoção antes da instalação garante que todos os pacotes sejam reinstalados.

michal.jakubeczy
fonte
0

Siga esta etapa para reinstalar os módulos dos nós e atualizá-los

funciona mesmo se a pasta node_modules não existir. Agora execute o seguinte comando de forma síncrona. você também pode usar "npm update", mas acho que essa é a maneira preferida

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 você estiver de acordo com a versão de suas dependências no arquivo package.json, não será necessário seguir essas etapas, basta executar

 npm install
Pedro JR
fonte