Como atualizo o devDependencies no NPM?


155

npm updateparece apenas atualizar os pacotes dependencies, mas e quanto devDependencies?

No momento, você pode instalar devDependenciesexecutando npm install ., mas isso não funciona paranpm update .

Alguma ideia?


1
Acabei de encontrar a mesma coisa. Estou surpreso com essa assimetria entre npm installe npm update. Eu trabalhei em torno dele, excluindo meu node_modulesdiretório e depois executando npm installnovamente, mas parece que deve haver uma maneira melhor.
Joe White

7
Abri um relatório de bug para esse comportamento. Veremos o que acontece.
Joe White

Isso pode ser porque os desenvolvedores do NPM pensaram que as pessoas usariam npm linkpara criar ambientes de desenvolvimento.
Julian Knight

Respostas:


157

Para atualizar o package.json, além dos módulos locais, execute

npm update --save-dev

Como alternativa, o mesmo comando para economizar tempo

npm update -D

Você pode visualizar todos os detalhes da atualização ou qualquer comando referente a esse assunto através de

npm help <cmd>

20
npm update -Dnão funcionou para mim, não atualizou nada.
AmazingDreams

27
Por que isso está marcado como a resposta correta quando a pergunta não é como salvar atualizações, package.jsonmas como fazer npm updatepara atualizar devDependencies?
Alejandro García Iglesias

@onalbi: isso não acontece. Aqui está o tópico que acompanha o problema .
Dan Dascalescu 26/09

1
npm update --save-devfunciona muito bem para mim. Usando node v12.11.0e npmv6.11.3
maximedupre 11/02



4

Se você estiver usando a versão npm desatualizada, pode ser o problema. Portanto, antes de qualquer outro comando ser executado:

sudo npm install npm -g

ou (se acima não funcionar):

sudo npm update npm -g

Em seguida, reinicie o console (para que as alterações entrem em vigor). Agora você pode verificar o seu novo npm --versione, se estiver atualizado, executar:

npm update

ou (se você preferir):

npm update --save-dev

Infelizmente, isso não funciona no npm 5. Aqui está o tópico que acompanha o problema .
Dan Dascalescu 26/09

2

Uma maneira (lenta) de forçar a atualização é remover o diretório node_modules e, em seguida, fazer npm installnovamente.

Este era um bug conhecido do npm updatecomando, que foi corrigido no ramo de desenvolvimento de npm, veja aqui: https://github.com/isaacs/npm/pull/3863

Ele deve chegar à versão estável mais recente do npm em breve.


1
No caso do npm> v5, você também precisará removê package-lock.json-lo para que isso funcione; caso contrário, ele apenas instalará as versões listadas nesse arquivo de bloqueio.
22817 karfau

Além disso, isso não será atualizado package.jsonpara você. Aqui está o tópico que acompanha o problema .
Dan Dascalescu 26/09

2

Encontrei o mesmo problema que o OP tinha e não encontrei solução, então decidi escrever um plug-in Grunt que atualizará automaticamente minhas devDependencies.

No Github, eu adoraria receber algumas contribuições e colaborações para torná-lo a melhor ferramenta que o NPM não forneceu.

Basicamente, ele atualiza automaticamente suas dependências de desenvolvimento desatualizadas com uma simples Tarefa Grunt.

https://github.com/pgilad/grunt-dev-update


2

O que funcionou para mim é instalar dependências de desenvolvimento individuais como esta

npm install react-test-renderer@15.6.1 --save --only=dev

1

Essas etapas funcionaram para mim:

  1. npm install -g npm-check-updates
  2. ncu -u
  3. npm update
  4. npm install
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.