Atualize todas as dependências do Node.js para a versão mais recente
Quando você instala um pacote utilizando npm install <packagename>
, a última versão disponível do pacote é baixada e colocada na pasta node_modules
, e uma entrada correspondente é adicionada nos arquivos package.json
e package-lock.json
presentes na pasta atual.
o npm calcula as dependências e também instala a última versão delas.
Digamos que você instale o cowsay
, uma ferramenta de linha de comando bem legal que te permite fazer uma vaca falar coisas.
Quando você roda npm install cowsay
, essa entrada é adicionada no arquivo package.json
:
{"dependencies": {"cowsay": "^1.3.1"}}
e esse é um trecho do package-lock.json
, onde removemos as subdependências para facilitar a leitura:
{"requires": true,"lockfileVersion": 1,"dependencies": {"cowsay": {"version": "1.3.1","resolved": "https://registry.npmjs.org/cowsay/-/cowsay-1.3.1.tgz","integrity": "sha512-3PVFe6FePVtPj1HTeLin9v8WyLl+VmM1l1H/5P+BTTDkMAjufp+0F9eLjzRnOHzVAYeIYFF5po5NjRrgefnRMQ==","requires": {"get-stdin": "^5.0.1","optimist": "~0.6.1","string-width": "~2.1.1","strip-eof": "^1.0.0"}}}}
Agora esses 2 arquivos nos dizem que instalamos a versão 1.3.1
do cowsay, e nossa regra para atualizações é ^1.3.1
, o que o npm pode atualizar para versões patch e minor: 1.3.2
, 1.4.0
e assim por diante.
Se há uma nova versão minor ou patch e nós digitamos npm update
, a versão instalada é atualizada, e o arquivo package-lock.json
rapidamente se atualiza com a nova versão.
o package.json
permanece sem alterações.
Para descobrir novas atualizações dos pacotes, rode npm outdated
.
Aqui está uma lista de alguns pacotes desatualizados em um repositório que não recebe atualizações a um bom tempo:
Algumas dessas atualizações são para versões major. Executando npm update
elas não serão atualizadas. Versões major nunca são atualizadas desse jeito porque elas (por definição) introduzem mudanças sujeitas a quebras em versões antigas, e o npm
quer nos poupar desse problema.
Para atualizar para uma versão major desses pacotes, instale o pacote npm-check-updates
globalmente:
npm install -g npm-check-updates
e então rode:
ncu -u
isso irá atualizar as versões no package.json
, tanto dependencies
quanto devDependencies
, assim o npm poderá instalar as versões major.
Agora você está pronto para executar as atualizações:
npm update
Se você só baixou o projeto sem as dependências do node_modules
e quer instalar as novas versões, basta rodar
npm install