Nvm-windows: A instalação do nvm falha com "O nome do arquivo ou extensão é muito longo"

Criado em 21 jul. 2017  ·  25Comentários  ·  Fonte: coreybutler/nvm-windows

Meu ambiente

Windows 8

Estou usando a versão NVM4W:

1.1.5

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

  • [] settings.txt
  • [] suporte a proxy (você tentou a versão 1.1.0+?)
  • [] Suporte de 32 ou 64 bits (você tentou a versão 1.1.3+?)
  • [] Caractere de escape (você tentou a versão 1.1.6+?)
  • [x] Um ambiente de shell padrão (terminal / powershell)
  • [] Um ambiente de shell não padrão (Cmder, Hyper, Cygwin, git)

Comportamento esperado

Instale a versão do nó 8.2.1

Comportamento Real

Falha com o erro The filename or extension is too long

Etapas para reproduzir o problema:

λ nvm install 8.2.1
Downloading node.js version 8.2.1 (64-bit)...
Complete
Downloading npm version 5.3.0... Complete
Installing npm v5.3.0...2017/07/21 09:02:31 mkdir C:\Users\suhas.karanth.RB\AppData\Roaming\nvm\temp\nvm-npm\npm-5.3.0\node_modules\libnpx\node_modules\yargs\node_modules\read-pkg-up\node_modules\read-pkg\node_modules\load-json-file\node_modules\parse-json\node_modules\error-ex\node_modules\is-arrayish: The filename or extension is too long.

Embora _ser_ um problema, duvido que haja uma maneira direta de corrigi-lo. No entanto, criar este problema para compartilhar como eu o contornei e como talvez pudesse ser evitado.

Instalei a última versão de pré-lançamento do nvm ( v1.1.6 ), mas desta vez instalei em C:\nvm\ para conservar o comprimento do caminho. Conseguiu instalar o nó v8.2.1 com sucesso depois disso. Você acha que faz sentido instalar o nvm neste caminho por padrão?

upstream-bug

Comentários muito úteis

Se você instalar o mais recente (1.1.6) e em vez de C:/Users/<username>/AppData/Roaming/nvm você selecionar C:/nvm como a pasta de instalação, ele deve funcionar. Não tive problemas ao instalar 8.4.0 :)

Para mim, usar nvm root para alterar o caminho de nvm não funcionou, recebi mensagens de erro estranhas. Ele não copiou nvm <commands> e mesmo node parou de funcionar.

A clonagem manual de npm como @michaelkdh sugeriu também não funcionou e parece hackear em comparação com uma instalação limpa

Todos 25 comentários

Algo está errado nesta instalação ... Você teve duas versões do NVM instaladas ao mesmo tempo por acaso?

Pode ser tarde demais neste ponto, mas o que echo %NVM_SYMLINK% produz?

Não. Eu não tinha 2 versões do NVM instaladas no momento em que ocorreu o erro.

Pode ser tarde demais neste ponto, mas o que echo %NVM_SYMLINK% produz?

Na verdade, não é tarde demais. Eu tinha um terminal aberto que ainda tinha o ambiente antigo.

λ where nvm
C:\Users\suhas.karanth.RB\AppData\Roaming\nvm\nvm.exe

λ echo %NVM_SYMLINK%
C:\Program Files\nodejs

Além disso, eu tinha instalado e estava usando várias versões do nó através do NVM antes:

λ nvm list

  * 8.1.2 (Currently using 64-bit executable)
    8.1.1
    8.1.0
    8.0.0
    6.10.3
    6.10.0
    5.12.0
    4.8.0
    4.2.6

Estou tendo o mesmo problema.
Windows 10
Concha de comandante
NVM 1.1.5

Isso está ocorrendo com o nó 8.2.0 e 8.2.1
8.1.4 e 8.1.3 estão funcionando bem.

$ nvm install 8.2.0
Downloading node.js version 8.2.0 (64-bit)...
Complete
Downloading npm version 5.3.0... Complete
Installing npm v5.3.0...2017/07/22 00:15:41 mkdir C:\Users\Christopher\AppData\Roaming\nvm\temp\nvm-npm\npm-5.3.0\node_modules\libnpx\node_modules\yargs\node_modules\read-pkg-up\node_modules\read-pkg\node_modules\load-json-file\node_modules\parse-json\node_modules\error-ex\node_modules\is-arrayish: The filename or extension is too long.

Eu me pergunto se devemos começar com o npm upstream
@clowenhg Se você instalar o nvm diretamente em C:\nvm , o problema será resolvido, mas as instalações de nós existentes não serão mais reconhecidas. Mudei as pastas de vários nós para C:\nvm e pude vê-las listadas, mas nunca tive a chance de testar nenhuma delas. Graças ao windows update e boot loop.

Isso provavelmente funcionaria, mas parece apenas uma solução temporária até que a próxima coisa queira ir mais fundo no diretório. Então, sim, levantar isso como um problema para a NPM provavelmente seria uma boa decisão.

Vendo que 8 ainda não está em sua versão LTS final, estou apenas revertendo para 8.1.4 por enquanto.

Parece haver uma série de problemas com as novas versões do npm, especificamente aquelas que incluem suporte a npx. Eu adicionei suporte para npx no branch master e irei lançá-lo quando 1.1.6 se tornar oficial (atualmente em teste). Contudo; mesmo nesse ramo, o npx ainda falha (ele também falha através do instalador do Node independente do Windows sem NVM4W).

Acredito que seja um problema de npm, não um problema de NVM4W. Estou encerrando o problema e marcando-o como um problema anterior.

@coreybutler Um pequeno esclarecimento, se você não se importa. Por que você teve que fazer alterações para o suporte npx? Mesmo com o nó v8.1 , o npx estava disponível e usável, embora com erros no Windows. Mas a nvm não deve ter que fazer nada para isso.

O nó 8.1 _não_ foi enviado com suporte a npx. Se você o tiver na versão 8.1, deve ter executado npm install -g npm algum lugar ao longo da linha para atualizar o npm. O comando npx foi adicionado ao npm v5.3.0 e a primeira versão do Node a ser enviada com o npm 5.3.0 foi a 8.2.1. Para obter detalhes específicos, consulte # 288.

Sim .. Você provavelmente está certo. Lembro-me de atualizar o npm.

Tive o mesmo problema, a solução que tenho é:

  1. instale a 8.2.1, que irá falhar com você, tudo bem.
  2. instale a v6.11.2 e copie 2 arquivos (npm e npm.cmd) de /c:/[username]/AppData/Roaming/nvm/v6.11.2 para a pasta v8.2.1
  3. na pasta v8.2.1, faça git clone https://github.com/npm/npm.git

então você deve ser bom

Obrigado @michaelkdh Funciona para mim. 👍
A coisa um pouco diferente foi que quando eu clonou o 'npm.git', ele criou a pasta 'npm'. E eu tive que mover a pasta 'npm' para 'node_modules'.

@ gblue1223 mesma coisa, só precisa do npm no lugar. Felicidades,

@coreybutler De acordo com o problema que você vinculou, você pode substituir os caminhos de instalação.

Se você instalar o mais recente (1.1.6) e em vez de C:/Users/<username>/AppData/Roaming/nvm você selecionar C:/nvm como a pasta de instalação, ele deve funcionar. Não tive problemas ao instalar 8.4.0 :)

Para mim, usar nvm root para alterar o caminho de nvm não funcionou, recebi mensagens de erro estranhas. Ele não copiou nvm <commands> e mesmo node parou de funcionar.

A clonagem manual de npm como @michaelkdh sugeriu também não funcionou e parece hackear em comparação com uma instalação limpa

@ peterbakonyi05 Ainda é um

@Sieabah Concordo, todo o problema é estranho. No entanto, acho que ainda é melhor do que as outras 2 soluções propostas (na verdade, nenhuma delas funcionou para mim)

Para aqueles que ainda estão enfrentando isso, alguém poderia fornecer etapas para recriar esse erro? Ou talvez um screencast? Ainda não vi isso em ação.

Além disso, notei que muitas pessoas estão copiando / colando de seus terminais ... e a sintaxe como /c/whatever , lambdas, etc. continua aparecendo ... tudo indica que as pessoas estão usando coisas como Cygwin , git shells, cmder, etc. Observe que esses shells _não sempre aderem aos padrões da plataforma Windows_ e _do_ afetam como os caminhos são lidos. Existem vários outros problemas citando isso, então tente tudo em um terminal padrão antes de postar para ter certeza de que é um problema de NVM4W e não um problema de shell de terminal.

@coreybutler Aqui está, com cmd.exe

C: \ Users \ Christopher> nvm install 8.4.0
Baixando node.js versão 8.4.0 (64 bits) ...
Completo
Criando C: \ Users \ Christopher \ AppDataRoamingnvm \ temp

Baixando npm versão 5.3.0 ... Completo
Instalando npm v5.3.0 ... 2017/09/05 16:50:14 mkdir C: \ Users \ Christopher \ AppDataRoamingnvm \ tempnvm-npmnpm-5.3.0node_modules \ libnpxnode_modules \ yargsnode_modules \ read-pkg-upnode_modules \ read-pkgnode_modules \ read-pkgnode_modules \ load-json-filenode_modules \ parse-jsonnode_modules \ error-exnode_modules \ is-arrayish: O nome do arquivo ou extensão é muito longo.

C: \ Users \ Christopher> onde nvm
C: \ Users \ Christopher \ AppDataRoamingnvmnvm.exe

C: \ Users \ Christopher> nvm install 8.4.0
Baixando node.js versão 8.4.0 (64 bits) ...
Completo
Criando C: \ Users \ Christopher \ AppDataRoamingnvm \ temp

Baixando npm versão 5.3.0 ... Completo
Instalando npm v5.3.0 ... 2017/09/05 16:50:14 mkdir C: \ Users \ Christopher \ AppDataRoamingnvm \ tempnvm-npmnpm-5.3.0node_modules \ libnpxnode_modules \ yargsnode_modules \ read-pkg-upnode_modules \ read-pkgnode_modules \ read-pkgnode_modules \ load-json-filenode_modules \ parse-jsonnode_modules \ error-exnode_modules \ is-arrayish: O nome do arquivo ou extensão é muito longo.

C: \ Users \ Christopher> onde nó
C: \ Program Filesnodejsnode.exe

C: \ Users \ Christopher> onde npm
C: \ Program Filesnodejsnpm
C: \ Program Filesnodejsnpm.cmd

Também estou usando a versão 1.1.5 do nvm, se isso fizer diferença (talvez você esteja no 1.1.6?)

Posso confirmar que a atualização para 1.1.6 corrige esse problema. Faz sentido, pois parece que parte do gerenciamento de caminho de arquivo agora usa bibliotecas Go nativas.

Isso também significaria que o bug do caminho de arquivo estava dentro do nvm e não no próprio npm. Qualquer bug arquivado no npm pode querer ser examinado novamente.

Obrigado @ computerquip-streamlabs. Eu peguei esse problema e resolvi atualizando o nvm com,

scoop install [email protected]

E então eu poderia instalar o nó 8.7.0 com nvm.

A instalação do nvm 1.1.6 corrige o bug com "instalação do npm: o nome do arquivo ou extensão é muito longo"

De: C: \ Usuários \ [nome de usuário] \ AppDataRoamingnvm

  1. Alterar configurações do arquivo.txt
root: C:\nvm 
path: C:\Program Files\nodejs 
arch: 64 
proxy: none
  1. Copie dois arquivos elevate.cmd e elevate.vbs para: C: nvm

Então funcionou para mim!

Reabrindo já que vários usuários ainda estão correndo para isso.

FWIW, estou executando o Windows 10, habilitei caminhos de arquivo longos, mas ainda não consegui instalar versões de nó acima de 6.x ... devido ao problema com caminho de arquivo longo em npm v 5.6, atualizando para nvm 1.1.6 corrigiu o problema para mim.

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