Nvm-windows: Não é possível instalar o pacote npm mais recente

Criado em 13 dez. 2019  ·  6Comentários  ·  Fonte: coreybutler/nvm-windows

Verifique se você revisou os problemas comuns e os problemas existentes antes de enviar um novo problema.

Se esta for uma pergunta sobre como usar o NVM4W, use stackoverflow .

Se este for um problema relacionado ao antivírus, certifique-se de pesquisar os problemas existentes primeiro.

Meu ambiente

  • [ ] Windows 7 ou inferior (não é realmente suportado devido ao EOL - consulte o wiki para obter detalhes)
  • [ ] Windows 8
  • [ ] Windows 8.1
  • [x] Windows 10
  • [ ] Windows 10 IoT Core
  • [ ] Servidor Windows 2012
  • [ ] Windows Server 2012 R2
  • [ ] Servidor Windows 2016

  • [ ] Minha instalação do Windows não é em inglês.

Estou usando a versão NVM4W:

Corra nvm version se você não souber.

1.1.7.

Meu problema está relacionado a (marque apenas aqueles que se aplicam):

  • [ ] configurações.txt
  • [ ] suporte a proxy (Você já experimentou a versão 1.1.0+?)
  • [ ] Suporte de 32 ou 64 bits (Você já experimentou a versão 1.1.3+?)
  • [ ] Fuga de caractere (Você já experimentou a versão 1.1.6+?)
  • [ x] Um ambiente shell padrão (terminal/powershell)
  • [ ] Um ambiente de shell não padrão (Cmder, Hyper, Cygwin, git)

Comportamento esperado

Espero npm-version-windows

Comportamento real

PS C:\WINDOWS\system32> npm install npm-windows-upgrade -g
C:\Program Files\nodejs\npm-windows-upgrade -> C:\Program Files\nodejs\node_modules\npm-windows-upgrade\bin\npm-windows-upgrade.js

  • [email protected]
    adicionou 72 pacotes de 51 colaboradores em 8.124s
    PS C:\WINDOWS\system32> npm-windows-upgrade -p -v mais recente
    npm-windows-upgrade v6.0.1
    Sistema verificado para instalação do npm:
    De acordo com o PowerShell: C:\Program Files\nodejs
    De acordo com o npm: C:\Program Files\nodejs
    Decidiu que o npm está instalado em C:\Program Files\nodejs
    Atualizando npm...

Atualizando npm (método de fallback)...

Você queria instalar o npm 6.13.4, mas a versão instalada é 6.9.0.

Um motivo comum é uma tentativa de "npm install npm" ou "npm upgrade npm". A partir de hoje, a única solução é desinstalar completamente e reinstalar o Node.js. Para um pequeno tutorial, consulte https://github.com/felixrieseberg/npm-windows-upgrade#usage.

Por favor, considere relatar seu problema para https://aka.ms/npm-issues.

Informações de depuração:

nó: 12.6.0 | v8: 7.5.288.22-node.14 | UV: 1.30.1 | zlib: 1.2.11 | brotli: 1.0.7 | são: 1.15.0 | módulos: 72 | nghttp2: 1.38.0 | napi: 4 | http: 1.1.4 | http_parser: 2.8.0 | openssl: 1.1.1c | cld: 35,1 | icu: 64,2 | tz: 2019a | código único: 12.1 | sistema operacional: win32 x64 | Nome do SO: Microsoft Windows 10 Enterprise
Versão do SO: 10.0.17134 N/D Build 17134

Etapas para reproduzir o problema:

Gostaria de obter o pacote npm mais recente 6.13.4 [sem problemas de segurança] com a versão do nó 12.13.1

Comentários muito úteis

Isso funcionou para mim, mas não vou jurar que é a resposta para todos:

  1. Use nvm install para configurar a instalação do nó.
  2. Execute nvm use para definir a versão atual.
  3. Abra a versão atual no Explorador de Arquivos. (No PowerShell, você pode fazer isso com explorer.exe $env:NVM_SYMLINK . No prompt de comando, é explorer.exe %NVM_SYMLINK% .)
  4. Exclua os arquivos npm, npx, npm.cmd e npx.cmd. Acho que não havia nenhum arquivo ps1 quando o configurei, mas exclua-os também. Cuidadoso. Não conheço todos os efeitos dessa exclusão se a atualização falhar. Você deve mantê-los na Lixeira para poder restaurá-los ou estar preparado para fazer uma reinstalação completa da versão do Node se ela falhar.
  5. Agora que o script foi excluído, temos que invocar o npm um pouco mais manualmente. Aqui está o comando do PowerShell para invocar seu comando de atualização:
    node (Join-Path $env:NVM_SYMLINK 'node_modules\npm\lib\npm.js') install -g npm

Isso funcionou para mim porque quando executei npm install -g npm , o erro que estava recebendo era que os arquivos de script de nível superior estavam "fora" da instalação, o que suponho que significa que eles não foram reconhecidos como gerenciados por ela. Não sei por que o npm pensou que não controlava esses arquivos, mas uma vez que eles estavam fora do caminho, ele atualizou muito bem.

Todos 6 comentários

https://nodejs.org/en/blog/vulnerability/december-2019-security-releases/ tentando obter a versão mais recente do npm para este problema de segurança.

Isso funcionou para mim, mas não vou jurar que é a resposta para todos:

  1. Use nvm install para configurar a instalação do nó.
  2. Execute nvm use para definir a versão atual.
  3. Abra a versão atual no Explorador de Arquivos. (No PowerShell, você pode fazer isso com explorer.exe $env:NVM_SYMLINK . No prompt de comando, é explorer.exe %NVM_SYMLINK% .)
  4. Exclua os arquivos npm, npx, npm.cmd e npx.cmd. Acho que não havia nenhum arquivo ps1 quando o configurei, mas exclua-os também. Cuidadoso. Não conheço todos os efeitos dessa exclusão se a atualização falhar. Você deve mantê-los na Lixeira para poder restaurá-los ou estar preparado para fazer uma reinstalação completa da versão do Node se ela falhar.
  5. Agora que o script foi excluído, temos que invocar o npm um pouco mais manualmente. Aqui está o comando do PowerShell para invocar seu comando de atualização:
    node (Join-Path $env:NVM_SYMLINK 'node_modules\npm\lib\npm.js') install -g npm

Isso funcionou para mim porque quando executei npm install -g npm , o erro que estava recebendo era que os arquivos de script de nível superior estavam "fora" da instalação, o que suponho que significa que eles não foram reconhecidos como gerenciados por ela. Não sei por que o npm pensou que não controlava esses arquivos, mas uma vez que eles estavam fora do caminho, ele atualizou muito bem.

@myty Novamente, não posso falar por todos, mas o npm-windows-upgrade falhou miseravelmente para mim. Sua mensagem de erro era ainda mais enigmática e inútil do que a que recebi de npm install -g npm . (Não me lembro da mensagem de erro exata; acho que era apenas extremamente genérica.) No entanto, é possível que estivéssemos enfrentando problemas diferentes.

Isso também funciona. #300 (comentário)

Isso funcionou para mim no passado, mas agora, ao tentar atualizar o npm de 6.13.4 para 6.13.6 (usando o nó 12.16.0), recebo o seguinte erro:

npm ERR! code EEXIST
npm ERR! path C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\node_modules\.bin\semver
npm ERR! Refusing to delete C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\node_modules\.bin\semver: is outside C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\node_modules\semver and not a link
npm ERR! File exists: C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\node_modules\.bin\semver
npm ERR! Remove the existing file and try again, or run npm
npm ERR! with --force to overwrite files recklessly.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\johns\AppData\Roaming\npm-cache\_logs\2020-02-18T20_00_16_440Z-debug.log

Alguém mais teve esse problema e conseguiu resolver? Eu tentei com --force mas mesmo erro.

Eu tinha o Nodist instalado antes do nvm-windows. Deixou um arquivo .npmrc no diretório inicial ( %userprofile% ). Eu tive que removê-lo e tentar o comando nvm use novamente para acertar tudo.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

David263 picture David263  ·  3Comentários

fredericrous picture fredericrous  ·  3Comentários

Deilan picture Deilan  ·  4Comentários

thany picture thany  ·  4Comentários

AllainPL picture AllainPL  ·  7Comentários