Nvm-windows: nvm instala o nó, mas não entrega o npm

Criado em 3 jul. 2019  ·  47Comentários  ·  Fonte: coreybutler/nvm-windows

Meu ambiente

  • [x] Windows 10

Estou usando a versão NVM4W:

  • [x] 1.1.7

Eu já...

  • [x] leia o README para estar ciente dos problemas do npm e do antivírus.
  • [x] revisou o wiki para ter certeza de que meu problema ainda não foi resolvido.
  • [x] verificou que estou usando uma conta com privilégios administrativos.
  • [x] pesquisou os problemas (abertos e fechados) para garantir que não seja uma duplicata.
  • [x] certificou-se de que esta não é uma pergunta sobre como usar o NVM para Windows, já que o gitter é usado para perguntas e comentários.

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

Depois de executar nvm install latest , a versão do nó 12.5.0 e a versão do npm v6.9.0 são instaladas.

Comportamento real

Após o comando de instalação, nenhum erro é mostrado:

2019-07-03_09h10_55

ocorre o seguinte problema:

2019-07-03_09h11_08

A pasta node_modules/ está vazia:

2019-07-03_09h32_34

Etapas para reproduzir o problema:

Basta instalar uma versão e verificar o que acontece. não sei exatamente como isso funciona, mas parece ser algo relacionado à nova mudança de URL do projeto npm/cli.

Comentários muito úteis

Tem o mesmo problema. Esta é a minha tentativa e funciona para mim:

  1. baixe a versão do node necessário de https://nodejs.org/en/download/releases/ no formato zip (ou outro formato)
  2. Exclua o diretório node_modules se ele já existir em version drectory localizado no diretório de instalação nvm (por exemplo, C:UsersUSER_NAMEAppDataRoamingnvmv8.11.4).
  3. descompacte o arquivo da etapa 1 e copie o diretório node_modules para version directory inferido na etapa anterior.
  4. npm funciona

Todos 47 comentários

Você está 100% certo de que está executando o 1.1.7? Eu pergunto porque a mudança npm/cli era um problema de URL codificado que existia em 1.1.6 e foi corrigido em 1.1.7.

infelizmente, 100% certo @coreybutler
hahaha

aqui está minha captura de tela da versão:

2019-07-03_13h33_44

Um amigo meu acabou de instalar o nvm 1.1.7 em sua máquina e eu atualizei o meu também para obter a versão mais recente do npm, sem sorte infelizmente

Desculpe, tive que perguntar :-)

Eu não posso recriar isso.

image

Normalmente, tudo se resume a a) permissões, b) problema de rede durante o download. Às vezes, o problema de rede está no servidor remoto, especialmente quando uma nova versão de nó/npm foi enviada. Essa mensagem de erro aparece o tempo todo, mas por vários motivos diferentes, dificultando a identificação da origem real do problema.

Para reproduzir esse problema, tive que desinstalar o Node e o NPM e fazer uma nova instalação usando apenas o NVM, então recebo o erro.

pwrshell-nvm-install-latest

Percebi que durante o processo de instalação o material relacionado ao NPM é baixado para uma pasta temporária, mas depois nunca é movido para nenhum lugar e a pasta temporária é excluída.
Mesmo executando o powershell como administrador, então não acho que seja relacionado à permissão.

Durante a instalação:
during-install

Após a instalação:
after-install

@gsicoli Você está correto que o npm baixa para um diretório temporário e é movido. Se a operação de movimentação estiver falhando silenciosamente, isso fará com que o diretório seja excluído sem mover o npm para onde ele precisa estar (ou seja, esse comportamento).

Você é avisado quando executa nvm use ou nvm install ? Executar como administrador não significa necessariamente que a conta tenha permissões elevadas. Normalmente, o Windows solicitará que você eleve as permissões. Para uma conta de administrador, ela é concedida automaticamente, mas ainda exige que o usuário diga "OK".

Ele avisa quando não executo como administrador. Se eu executo como administrador, ele não solicita... No entanto, o efeito é o mesmo.

Enfrentando o mesmo problema no Windows 10. Se houver alguma informação que eu possa fornecer, ficarei feliz em ajudar!

No entanto, não parece estar relacionado a uma determinada versão do nó; a pasta node_modules está sempre vazia para as versões que tento instalar. Sou solicitado para permissões elevadas.

Tem o mesmo problema. Existe uma solução alternativa?

Tem o mesmo problema. Esta é a minha tentativa e funciona para mim:

  1. baixe a versão do node necessário de https://nodejs.org/en/download/releases/ no formato zip (ou outro formato)
  2. Exclua o diretório node_modules se ele já existir em version drectory localizado no diretório de instalação nvm (por exemplo, C:UsersUSER_NAMEAppDataRoamingnvmv8.11.4).
  3. descompacte o arquivo da etapa 1 e copie o diretório node_modules para version directory inferido na etapa anterior.
  4. npm funciona

Tem o mesmo problema. Então, apliquei a solução alternativa de @liuwenzhuang. De fato, agora npm funciona bem. No entanto, recebo o seguinte erro em npm up -g
62166164-56513a00-b320-11e9-8728-4d0cfeb758a9

Desligar a McAfee e executar a instalação do console de administração corrigiu isso para mim.

@helzgate : Isso não faz sentido para mim. Meus logs de vírus não mostram exatamente nada.
Você pode fornecer um log de sua atividade da McAfee?

Eu posso confirmar isso. Com o mcafee ativado, o npm é descompactado, mas a movimentação falha sem nenhum erro. Os logs da McAfee não mostram nada. Desabilitar o mcafee durante a instalação corrige o problema.
@coreybutler Eu sei que não é uma boa solução, mas aparentemente a descompactação funciona, então seria possível descompactar diretamente na pasta nodes_module/npm em vez de descompactar para temp e mover?

Estou com o mesmo problema, mas parece acontecer apenas com a instalação do nó 6 (ou acontece porque instalei o nó 6 depois de fazer nvm install latest ?). A instalação do NPM trava indefinidamente e me deparo com o mesmo erro npm-cli listado acima.

Eu tenho o McAfee Endpoint Security instalado, mas como é um PC gerenciado em um escritório, não há como desativá-lo para ver se esse é o problema. O NPM continua travando após 10 minutos do processo de instalação. Não existe uma maneira de modificar o NVM para pelo menos detectar travamentos ou que um processo não seja concluído conforme o esperado?

Note, este comentário funciona totalmente! Seria ótimo se fosse isso que o instalador nvm fizesse.

@matthew-dean O mesmo aqui com a McAfee. Embora eles não tenham definido corretamente minhas permissões para que eu possa desativá-lo. Vou ver se essa é a causa do problema amanhã quando voltar ao trabalho. Eu não ficaria surpreso; o instalador de pacotes do dart relatou um problema semelhante ao instalar algum pacote (que também funcionou baixando para temp e depois movendo para outro lugar).

Sim, este é realmente o problema para mim! Há alguma operação lá que o McAfee Endpoint Security impede silenciosamente.

Instalando qualquer versão com o McAfee ativo => sem npm
Instalando qualquer versão com a McAfee desabilitada => npm está incluído e funcionando bem

O erro mencionado acima , ao executar npm update -g , também está relacionado à McAfee? Ou isso é um efeito colateral da solução alternativa ?

Não pense assim. Não mudou nada para mim se eu desativei a McAfee ou não. Observe também que já existem dois problemas nesse tópico ( um mais longo e um mais curto com um script que permite que você ainda atualize o npm, parece (não testei, mas tem mais de 30 polegares)

Obrigado! Seguindo uma versão aprimorada desse script para bash . (Talvez seja necessário ajustar o local nodejs .) Anexe-o ao seu ~/.bashrc e execute npmup em um novo bash. Ou execute diretamente os comandos do corpo da função de uma só vez. Esta versão realmente faz uma atualização, em vez de (re)instalar todas as vezes.

function npmup {
  pushd /c/Program\ Files/nodejs > /dev/null
  mv npm npm2
  mv npm.cmd npm2.cmd
  mv npx npx2
  mv npx.cmd npx2.cmd
  node node_modules/npm/bin/npm-cli.js up npm -g
  mv -n npm2 npm
  mv -n npm2.cmd npm.cmd
  mv -n npx2 npx
  mv -n npx2.cmd npx.cmd
  rm -f npm2 npm2.cmd npx2 npx2.cmd
  popd > /dev/null
}

O comentário a que me referi já foi removido, desculpe a confusão.

Usando 1.1.7, eu estava enfrentando o mesmo problema com o NPM não sendo copiado da pasta "temp", ao executar uma nova instalação do Node.js + NPM usando o NVM. Como uso uma máquina da empresa, não consigo testar com o McAfee Endpoint Security desativado.

No entanto, criei o NVM a partir do "mestre" hoje e verifiquei que ele é capaz de instalar corretamente do zero sem problemas.

Observe que esse problema não é _apenas_ que o NPM falha ao instalar, mas o utilitário de linha de comando NVM também falha ao _reconhecer_ que o NPM não foi instalado. IMO, o instalador não está realizando uma etapa necessária para verificar se o diretório está presente, o que evitaria alguma confusão em torno desse problema.

@hind3nbug O mesmo para mim, o McAfee Endpoint Security não pode ser desabilitado em uma máquina corporativa, portanto, ainda precisa haver uma maneira adequada de instalar o NPM. Deve haver alguma maneira de fazer isso.

Usando 1.1.7, eu estava enfrentando o mesmo problema com o NPM não sendo copiado da pasta "temp", ao executar uma nova instalação do Node.js + NPM usando o NVM. Como uso uma máquina da empresa, não consigo testar com o McAfee Endpoint Security desativado.

No entanto, criei o NVM a partir do "mestre" hoje e verifiquei que ele é capaz de instalar corretamente do zero sem problemas.

Você pode compartilhar sua versão? Não consigo construir nvm a partir do código-fonte :(

@hind3nbug & @coreybutler... então esse problema foi resolvido? mas não lançou nova versão nvm? quando uma nova versão é estimada?

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.

Isso aconteceu comigo hoje - desinstalar a versão e reinstalá-la parecia corrigir o problema.

Eu estava recebendo uma falha silenciosa na instalação do npm.

Eu pensei que poderia ser o antivírus do Windows, então desativei isso:
image

Estranhamente agora a falha não é silenciosa:

$ nvm install 12.12.0
Downloading node.js version 12.12.0 (64-bit)...
Complete
Creating C:\ProgramData\nvm\temp

Downloading npm version 6.11.3... Download failed. Rolling Back.
Rollback failed. remove C:\ProgramData\nvm\temp\npm-v6.11.3.zip: The process cannot access the file because it is being used by another process.
Could not download npm for node v12.12.0.
Please visit https://github.com/npm/npm/releases/tag/v6.11.3 to download npm.
It should be extracted to C:\ProgramData\nvm\v12.12.0

Você executou nvm on após a instalação?

Tenho que fazer isso toda vez que instalo uma nova versão do Node.js?

Eu tenho usado nvm por alguns anos e nunca tive que fazer nvm on antes.

Decidi encerrar este problema porque isso está começando a tocar em vários outros problemas. Vamos nos ater a um problema por tópico. Abra um novo problema se o seu problema não for resolvido.

Vou tentar resumir com base no que li:

1) npm será instalado pelo nvm. Se você estiver vendo o caminho antigo (npm/npm), precisará atualizar o NVM4W para 1.1.7. Se você não tiver as permissões apropriadas, ele falhará. Essa é a natureza e a intenção do Windows e por que existem os prompts do UAC.
2) Seu antivírus pode impedir que o NVM4W mova os arquivos do npm do diretório temporário para seu local final. Desligue-o ou abra uma exceção. Veja o ponto 3.
3) O NVM4W foi submetido a todos os principais fornecedores de antivírus e está sendo aprovado (em teoria). No entanto; o software antivírus muda as definições o tempo todo, tornando isso difícil de acompanhar. Alguns AV fora da marca baseiam suas definições em conhecimentos muito desatualizados, sendo o mais desafiador que alguns bloqueiam completamente os programas. Houve um falso positivo no tempo de execução go alguns anos atrás... há muito tempo foi patch e o NVM4W nunca sofreu com o exploit de qualquer maneira... mas algumas empresas de AV bloqueiam toda a assinatura da linguagem go.
4) Na verdade, eu nunca desligo e ligo o nvm. Você realmente não deveria, mas foi projetado para ajudar a testar seu sistema.

Tem o mesmo problema. Esta é a minha tentativa e funciona para mim:

  1. baixe a versão do node necessário de https://nodejs.org/en/download/releases/ no formato zip (ou outro formato)
  2. Exclua o diretório node_modules se ele já existir em version drectory localizado no diretório de instalação nvm (por exemplo, C:UsersUSER_NAMEAppDataRoamingnvmv8.11.4).
  3. descompacte o arquivo da etapa 1 e copie o diretório node_modules para version directory inferido na etapa anterior.
  4. npm funciona

Eu tentei de tudo por dois dias... nvm, reinstalação de nós, reinícios, mudanças de PATH, e esta é a única coisa que realmente funcionou como um encanto!

@coreybutler posso sugerir adicionar a sugestão de @liuwenzhuang a readme.md ou Common-Issues ?

Isso pode economizar o tempo de alguém.

Olá, é o meu caso, esta mensagem no console me deu a pista sobre o erro:

Visite https://github.com/npm/npm/releases/tag/v6.14.4 para baixar npm.

Ir para a página https://github.com/npm/npm/ mostra que o repositório foi movido e agora está em https://github.com/npm/cli. Ou seja, você teria que procurar a v6.14.4 no referido repositório.

Também enfrentei o mesmo problema no Windows 10. E isso pode ser resolvido desativando a proteção da McAffe.

Abra o McAffe Endpoint Security > Threat Prevntion > Disable Access Protection e On access scan module (Desmarque)
execute > versão de instalação do nvm

@coreybutler : Acho que você deve fornecer alguma notificação relativa se o npm não for instalado corretamente.

Tem o mesmo problema. Esta é a minha tentativa e funciona para mim:

  1. baixe a versão do node necessário de https://nodejs.org/en/download/releases/ no formato zip (ou outro formato)
  2. Exclua o diretório node_modules se ele já existir em version drectory localizado no diretório de instalação nvm (por exemplo, C:UsersUSER_NAMEAppDataRoamingnvmv8.11.4).
  3. descompacte o arquivo da etapa 1 e copie o diretório node_modules para version directory inferido na etapa anterior.
  4. npm funciona

Obrigado @liuwenzhuang Seu comentário realmente ajudou hoje. Estou lutando com esse bug há alguns dias

Por que as pessoas estão baixando o nó do site para usar com o nvm, não é para isso que o nvm deveria ser? 😉 você também pode não usar nvm.

Eu tinha um link simbólico fantasma que o nvm havia criado anteriormente que não podia excluir por causa das permissões do shell. Acho que é porque estou usando o nvm no git bash shell como usuário não elevado.

Eu deletei no prompt de comando do administrador:

del /f c:\Program Files\nodejs

Em seguida, fiz um novo link simbólico para uma versão que baixei usando o nvm:

mklink /j "C:\Program Files\nodejs" "C:\Users\USER_NAME\AppData\Roaming\nvm\NODE_VERSION"

Eu não tentei nvm use NODE_VERSION mas há uma boa chance se você excluir o link simbólico antes de invocá-lo, ele fará o link para você (suponho que esse seja o comportamento esperado). Provavelmente precisaria usar algo assim: https://github.com/imachug/win-sudo

Tem o mesmo problema. Esta é a minha tentativa e funciona para mim:

  1. baixe a versão do node necessário de https://nodejs.org/en/download/releases/ no formato zip (ou outro formato)
  2. Exclua o diretório node_modules se ele já existir em version drectory localizado no diretório de instalação nvm (por exemplo, C:UsersUSER_NAMEAppDataRoamingnvmv8.11.4).
  3. descompacte o arquivo da etapa 1 e copie o diretório node_modules para version directory inferido na etapa anterior.
  4. npm funciona

Isso funcionou!!!

Eu também tive o mesmo problema com o McAfee + Win 10 + PowerShell. - Muito obrigado @liuwenzhuang

Não tenho certeza por que isso foi fechado, mas estou tendo o mesmo problema, nova instalação do Windows 10, nova instalação do nvm, sem antivírus (exceto embutido). A correção oficial não é ignorar o motivo pelo qual estou usando o nvm, é?

Este comentário funciona para mim: https://github.com/coreybutler/nvm-windows/issues/475#issuecomment -538475058

Só fazendo nvm on ... achei que estava 'on' logo após a instalação 😄

Quando a versão do seu npm local é mais recente, ele pode não instalar a mesma versão npm quando você instala o nó mais recente, isso acontecerá?

Uma das minhas máquinas do escritório tem McAfee e acho que está parando de instalar (copiar) a pasta npm. Mas abaixo do passo vem como um resgate para mim. Obrigado.

Tem o mesmo problema. Esta é a minha tentativa e funciona para mim:

  1. baixe a versão do node necessário de https://nodejs.org/en/download/releases/ no formato zip (ou outro formato)
  2. Exclua o diretório node_modules se ele já existir em version directory localizado no diretório de instalação nvm (por exemplo, C:UsersUSER_NAMEAppDataRoamingnvmv8.11.4).
  3. descompacte o arquivo da etapa 1 e copie o diretório node_modules para version directory inferido na etapa anterior.
  4. npm funciona

Isso funciona de mim, como um encanto !!

Eu acho que adicionar uma etapa de teste para confirmar a instalação bem-sucedida de qualquer versão nodejs até nvm-windows será muito útil para economizar tempo. Se falhar, forneça alguns insights prováveis ​​para resolvê-lo.

@coreybutler pensou?

Obrigado.

@Amitesh - Acho que fazer verificações de integridade é uma boa ideia. No entanto; Eu não tenho tempo para fazer isso agora (veja a guia de discussão, primeiro post). Eu aceitaria um PR se alguém quisesse adicionar isso.

Ainda estou enfrentando o problema npm não reconhecido no Windows 10 para o nó recém-instalado (10.23.0) usando nvm (1.1.7)
Eu segui os passos abaixo, mas não adianta

baixe a versão do node necessário de https://nodejs.org/en/download/releases/ no formato zip (ou outro formato)
Exclua o diretório node_modules se ele já existir no diretório de versão localizado no diretório de instalação nvm (por exemplo, C:UsersUSER_NAMEAppDataRoamingnvmv8.11.4).
descompacte o arquivo da etapa 1 e copie o diretório node_modules para o diretório de versão inferido na etapa anterior.
npm funciona
alguém pode me orientar como fazer isso funcionar :( @coreybutler alguma ajuda por favor?
nvmerror
nvm npm _10 23 0

Acabei de encontrar uma solução alternativa, analisando os comentários relacionados à proteção antivírus.

Estou no Windows 10, 64 bits, versão 1909 (compilação 18363.1139)

  1. No menu Iniciar, abra o aplicativo Segurança do Windows .
  2. Clique no bloco de proteção contra vírus e ameaças .
  3. Na interface exibida, escolha Gerenciar configurações em "Configurações de proteção contra vírus e ameaças"
  4. Desative a proteção em tempo real
  5. No menu iniciar, localize o prompt de comando, clique com o botão direito do mouse e "Executar como administrador"
  6. execute nvm install com a versão que você deseja instalar. O npm será instalado corretamente agora. Verifique com nvm use com a versão, então node -v e npm -v
  7. Volte para o aplicativo Segurança do Windows e ative a proteção em tempo real novamente
Esta página foi útil?
0 / 5 - 0 avaliações