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?

Matt
fonte
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>
deckerdev
fonte
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
55

Instale o npm-check-updates ( https://www.npmjs.org/package/npm-check-updates ) e, em seguida, vá para a pasta do projeto e execute:

npm-check-updates

E para atualizar e salvar as alterações no seu arquivo package.json:

npm-check-updates -u
Michael Thompson
fonte
ncuseria melhor do npm-check-updatesque salvar a digitação.
Edric
@DimitriKopriwa há uma -dopção apenas para devDependencies #
Michael Thompson
ncu --dep dev -u; Instalação do npm
Kiruahxh
7

Esse problema não afeta mais a versão atual do NPM (1.3.11).

A atualização funciona bem com: npm update

spieglio
fonte
1
Infelizmente isso não acontece. Aqui está o tópico que acompanha o problema .
Dan Dascalescu 26/09
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
jmarceli
fonte
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.

Rick Deckard
fonte
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

Gilad Peleg
fonte
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
Varsha
fonte
1

Essas etapas funcionaram para mim:

  1. npm install -g npm-check-updates
  2. ncu -u
  3. npm update
  4. npm install
Alferd Nobel
fonte