Nvm-windows: Problema com espaços em branco no caminho

Criado em 17 fev. 2015  ·  71Comentários  ·  Fonte: coreybutler/nvm-windows

Olá! Estou tendo um problema quando estou tentando nvm use <node_version>
captura
Desculpe pelo idioma espanhol na imagem. Significa que "c: \ Usuários \ Edu" não é reconhecido como um comando interno ... bla bla bla.
Meu nome de usuário é "Edu Martin" e meu caminho é "c: \ Usuários \ Edu Martin \ AppData \ Roaming \ nvm"
É possível haver um erro com espaços em preto no caminho ?? Todas as configurações do meu aplicativo são padrão

Comentários muito úteis

Portanto, uma correção para isso é editar seu settings.txt e usar o esquema de nomenclatura de pasta alternativo do Windows que não tem espaços, que no meu caso foi:

2

(settings.txt está em AppData \ Roaming \ nvm por padrão)

Todos 71 comentários

+1

A solução alternativa para mim foi desinstalar e reinstalar para o usuário Public . Não é o ideal, mas estou feliz por rodar NVM no Windows!

+1 muitas instalações do Windows têm nomes de usuário com espaços

1 para isso, tive o mesmo problema com meu nome de usuário

1

Portanto, uma correção para isso é editar seu settings.txt e usar o esquema de nomenclatura de pasta alternativo do Windows que não tem espaços, que no meu caso foi:

2

(settings.txt está em AppData \ Roaming \ nvm por padrão)

@coreybutler, podemos resolver isso, por favor?

: orar:: orar:: orar:: orar:: orar:: orar:: orar:: orar:: orar:: orar:: orar:: orar:: orar:

aqui está um gif para tentar co-coagir você ...

Meu ambiente de construção mudou recentemente / substancialmente, então o problema é liberar os binários (eu tinha um script de construção realmente customizado). Eu ficaria feliz em adicionar a correção ao branch master, seria apenas necessário compilar a partir do código-fonte.

Tenho que ir para o Reino Unido na próxima semana, mas quando voltar aos Estados Unidos, tratarei disso assim que puder.

Isso seria ótimo @coreybutler :) Além disso, talvez possamos vincular a próxima compilação (com este patch) ao # 17 etc?

Eu estava tendo esse problema porque queria usar "C: \ Documents and Settings (meu nome) \ Application Data \ nvm" como a raiz. Então o que fiz foi reinstalar o nvm, especificando "C: \" como a raiz em vez do padrão durante a instalação, então agora está armazenando todas as versões do Node em "C: \ nvm", que obviamente não tem espaços no caminho. Settings.txt confirma isso como a raiz. Eu só precisava lembrar de cd para C: \ antes de usar qualquer um dos comandos nvm, caso contrário, ele gerou um erro dizendo que não foi possível encontrar settings.txt. No meu caso, como C: \ não está associado a nenhum usuário, quando mudo para uma versão do Node usando "nvm use <versão>", ele me pergunta qual conta de usuário desejo usar para executar o programa. Mas parece estar funcionando bem; Estou recebendo a mensagem "agora usando o nó <versão>".

+1 Para quem deseja resolver o problema editando o arquivo settings.txt, você pode tentar isso na linha de comando para obter o caminho formatado correto

cmd / c para% A em ("C: \ Usuários \ Meu nome com Spaces \ AppData \ Roaming \ nvm") do @echo % ~ sA

A instalação do nvm-windows em arquivos de programa também causa esse erro. Atualizar o arquivo settings.txt conforme abaixo resolve o problema, mas seria bom consertar isso ou adicioná-lo ao Leia-me como um 'Peguei'!

root: C: \ PROGRA ~ 1 \ nvm
caminho: C: \ PROGRA ~ 1 \ nodejs

usar um link de junção simbólica no Windows que encontrei também é uma solução alternativa para esse problema
use algo assim
mklink / J nvm_home "C: \ Usuários \ Chris McGrath \ AppData \ Roaming \ nvm"

em seguida, atualize settings.txt com o endereço de junção

assim que criei este link, a troca começou a funcionar sem problemas

Portanto, esta edição está aberta há quase um ano. O nvm-windows está morto?

@codeimpossible - Não estou morto, apenas tenho de lidar com prioridades de vida mais altas. Vou postar uma nota sobre isso no gitter.

@coreybutler só queria que você soubesse que eu uso nvm-windows todos os dias e agradeço todo o trabalho árduo que você colocou no projeto

@kirkouimet Obrigado ... emocionado em saber que é útil!

Olá, coreybutler, ótimo trabalho com nvm. Isso está realmente tornando minha vida mais fácil: D

Mas você pode escrever informações sobre o espaço em qualquer lugar? Algo como

"Se você tiver um espaço no seu nome de usuário, altere o diretório padrão usado pelo instalador e escolha o caminho sem espaço."

Eu nunca editei wiki no github. Tenho um pouco de medo do que posso fazer.

@AntiCZ - Boa ideia. Eu adicionei uma página de problemas comuns para resolver isso. Vou continuar a adicionar a isso, se necessário.

Eu resolvo o meu usando:
cmd / c para% A em ("C: \ Usuários \ Meu nome com Spaces \ AppData \ Roaming \ nvm") do @echo % ~ sA
por @mhchristensen .
E então mude a raiz no arquivo setting.txt
Muito obrigado: +1:

Sem um espaço em $env:USERPROFILE as pessoas ainda estão tendo problemas com o caminho do nodejs por ter espaços nos Arquivos de Programas? Não estou vendo o mesmo comportamento na minha VM do Windows 2012R2.

Vou testar com um usuário com um espaço no nome para ver se isso está causando algum tipo de falha em cascata. Seria ótimo obter algumas versões do sistema operacional e qual prompt de cmd você está usando (PowerShell / CMD / Bash4Windows / GitBash).

No momento, estou refatorando um pacote Chocolatey que alguém criou para nvm e espero publicá-lo em breve. Ele evita o instalador e usa o caminho de instalação chocolatey que não tem espaços, e não tive problemas com o caminho do nó com espaços no arquivo settings.txt.

Tive quase o mesmo problema, exceto que meu nome de usuário tem um e comercial (&) em vez de um espaço. Nessa situação, usar o nome da pasta alternativa não ajudou, porque mesmo o nome abreviado ainda tem o e comercial. No entanto, criar um link simbólico, como sugeriu @clmcgrath , foi uma boa solução alternativa para mim.

Basta instalá-lo em um diretório sem nada de especial. Por exemplo: C: \ nvm \

Também porque o pacote NVM no Chocolatey está usando o caminho C: \ ProgramData \ nvm, uma vez que é o equivalente a "Todos os usuários" em Arquivos de programas, mas sem espaços.

Isso pode ser contornado usando nomes alternativos para pastas ou arquivos com espaços. Por exemplo, instalei o nvm em "C: \ Arquivos de programas \ nvm". Vá para a pasta acima das que têm o espaço e use a opção / X para obter uma lista de diretórios com nomes 8.3 antigos:

CD \
dir / X

Eu tenho uma linha que parece ...

15/02/2017 15:44 \

Em seguida, edite o arquivo settings.txt (em \ Arquivos de programas \ nvm no meu caso) e edite o nome da pasta incorreta:

root: C: \ Progra \ ~ 1 \ nvm
caminho: C: \ Progra \ ~ 1 \ nodejs

(Esta é a mesma solução que @markbrownsword deu há mais de um ano, mas sua mensagem foi um pouco

janelas

mover para o caminho sem espaços em branco

ou

executando cmd como administrador
e então mklink para o novo caminho sem espaços em branco.

@coreybutler Alguma notícia sobre este assunto? Eu acabei de ser atingido por ele. Estou disposto a fazer relações públicas se você me disser o que procurar :)

Acabei de pré-lançar a v1.1.6 , que aproveita um novo sistema de gerenciamento de caminho no Go 1.8.3. Todos os meus testes locais estão trabalhando com espaços e caracteres especiais em caminhos, mas só posso testar em uma instalação em inglês do Windows 10 no momento. Espero que algumas pessoas que tiveram esse problema possam testá-lo. Assumindo que o problema foi resolvido, lançarei o 1.1.6 oficialmente como uma correção.

TBH, esse problema não acontece em vários lançamentos agora, tem sido muito bom por um ano ou mais agora

@clmcgrath - fico feliz em saber disso!

Para esclarecimento, minha principal curiosidade é com instalações em outros idiomas, que estavam produzindo alguns caracteres ocultos que Go reconhecia como um terminador de string ... estava cortando o caminho prematuramente.

Ainda não funciona. Tentei mudar o arquivo setting.txt que também não ajudou.

@chillerfx - Algum comando é executado ou apenas nvm use falhando? Além disso, qual é a localidade do seu ambiente (não em inglês?)

No meu sistema operacional Windows 7, 'nvm list' funciona, mas 'nvm use' não funciona. Minha localidade é inglês. Além disso, alterar settings.txt para usar ~ 1 devido ao espaço no nome de usuário não está funcionando. Quando isso é feito, a lista nvm também não funciona.

Minha configuração:

nvm v1.1.6
Windows 10 Pro (versão 1703, compilação 15063.540)
Local: Inglês (Reino Unido)

Ainda tendo esse problema. nvm install latest funciona, mas nvm use 8.4.0 falha. Meu nome de usuário tem um espaço como "John Smith" e o erro que recebo é exit status 1: 'C:\Users\John' is not recognized as an internal or external command, operable program or batch file.

Tudo (listar, usar, instalar) funciona quando edito meu arquivo de configurações como @ryan-mcguire sugere.

Aqueles com problemas podem executar nvm root e relatar o que é impresso?

raiz nvm: C:\Users\Jeff Utz\AppData\Roaming\nvm

Minha configuração:

nvm v1.1.6
Windows 10 Pro (1703, compilação 15063.540)
Local: Inglês (EUA)

Todos os comandos funcionam com exceção de nvm use ... nvm on habilitará o nvm, mas dará o erro exit status 1

Tente usar o nome do caminho abreviado.
Para encontrar o caminho encurtado:
C: \ Usuários
dir / x

Não se esqueça de reiniciar o Windows.

error

como resolver o erro ?? por favor, compartilhe sua ans ..

@ psiddharth709 - pare de postar a mesma pergunta em várias edições.

Eu cavo a solução c: \ nvm. Eu gosto de ter minhas coisas, esp. no Windows em uma pasta posso encontrá-lo facilmente (c: \ xammp é meu servidor apache). Fiz assim e está tudo bem. Obrigado pelo trabalho árduo.

@coreybutler Você pode testar o problema instalando nvm em qualquer pasta com caractere de espaço. Por exemplo, em C:\Program files\nvm (o erro é mostrado pelo XepherX acima - "'C: \ Programa' não é reconhecido ...").

Meu palpite é que o problema está em executar elevate.cmd com exec.Command . Não tenho certeza porque não sei como depurar Go. Mas quando eu renomeio elevate.cmd , recebo um erro sobre o arquivo ausente e quando restauro elevate.cmd recebo o erro "'C: \ Programa' não é reconhecido ..."

Portanto, isso não parece ser um problema com um conjunto de caracteres. E o problema ocorre tanto no Windows 7 quanto no Windows 10. Mesmo se cmd já estiver elevado (Executar como administrador).

@coreybutler Infelizmente, ainda é o mesmo problema para mim como para todos os outros nesta edição, mesmo usando a versão de pré-lançamento 1.1.6.

Obrigado a todos! Minhas desculpas pela demora no lançamento de uma nova versão ... Ainda estou atolado (e contratando).

@Eccenux - você pode estar no elevate.cmd . Go é compilado, então a depuração ocorre antes da construção. Acho que o comando elevar é o culpado mais provável, mas confirmará na primeira chance que eu tiver.

Eu tive o mesmo problema que @davidrosevear. nvm install funcionou com 1.1.6, mas nvm use não. Deixe-me saber se eu puder ajudar em tudo @coreybutler.

Eu ainda tenho esse problema

@seanpoulter e qualquer outra pessoa interessada em ajudar ....

Estou com um grande problema - muitos clientes novos entrando na minha empresa de consultoria. O problema: muito pouco tempo para trabalhar em qualquer outra coisa. Quaisquer olhos extras que pudessem dar uma olhada neste problema seriam muito apreciados. Ainda não tive a chance de ver a sugestão do elevate.cmd , mas acho que é o ponto de partida. 1.1.6 tem um monte de escape de caractere nativo de go, então meu instinto diz que o problema não é com Go ... mas o comando elevate não é testado com o resto do código.

Parabéns! Esse é realmente um grande problema.

Vamos dar uma olhada em uma solução de comunidade e RP para este enquanto @coreybutler está ocupado. Eu tenho um grande PR para revisar em outro repo (vscode-jest), então vai demorar um pouco antes que eu possa mergulhar neste aqui.

essas versões de arquivo abreviadas não funcionam e nem a instalação de R em um caminho com um espaço
Como podemos resolver esses problemas. Se instalarmos R em um diretório diferente, ele ainda usará o caminho variável para qualquer outra coisa?

Como já faz um tempo desde o último lançamento aqui, decidi publicar um contendo a correção que enviei antes em meu fork:
https://github.com/shadow/nvm-windows/releases/tag/1.1.7

Resolvi movendo-o para C: nvm, mas gostaria de saber se alguma correção está planejada ...

Obrigado, @shadow acaba de instalar sua versão vinda de v 1.1.6 com meu nome de usuário sendo "Cody Swartz" no meu caminho. Eu estava recebendo o mesmo erro que todos estavam recebendo e sua correção parece limpa e direta. Agora nvm use funciona! 🎉

Acabei de baixar e instalar o nvm para Windows pela primeira vez hoje e encontrei esse problema. Estou executando a versão 1.1.7. Há algo que estou perdendo aqui? Isso não deveria ter sido corrigido para v1.1.6 e posterior?

Também tendo esse problema. Tornando a coisa toda praticamente inutilizável.

EDIT: Corrigido por meio do truque ~ 1.

Portanto, uma correção para isso é editar seu settings.txt e usar o esquema de nomenclatura de pasta alternativo do Windows que não tem espaços, que no meu caso foi:

Só para expandir isso com mais precisão, a conversão é a seguinte: C: \ Usuários \ John Doe -> C: \ Usuários \ JOHND ~ 1

O bug ainda permanece. Não está resolvido. Usando nvm 1.17

root: C: \ PROGRA1nvm
caminho: C: \ PROGRA1 \ nodejs

A configuração acima mencionada anteriormente neste tópico está errada ou não funciona para mim, pelo menos ...;)
Para quem se depara com esse problema.
Depois de instalar o nvm e o nodejs em C: \ Arquivos de programas, use a seguinte configuração em settings.txt e deve funcionar.

root: C:\PROGRA~1\nvm
path: C:\PROGRA~1\nodejs

@ Laslo89 tem a resposta certa, substituindo o espaço por ~ funciona bem

Portanto, uma correção para isso é editar seu settings.txt e usar o esquema de nomenclatura de pasta alternativo do Windows que não tem espaços, que no meu caso foi:

2

(settings.txt está em AppData \ Roamingnvm por padrão)

Uma nota rápida para aqueles que não possuem habilidades gerais de tecnologia como eu. Se você usar dir *. /x no prompt de comando, ele listará os diretórios dentro da localização atual, fornecendo a você o nome do formulário 8.3 na coluna do meio. Você pode então usar isso para alterar as configurações conforme descrito acima. Porém, como mencionado anteriormente, Program Files torna-se PROGRA~1 .

qual site fornece o tutorial mais recente relacionado a íons.? por favor, diga.....

>

como esse problema ainda não foi corrigido ?! Se for uma regressão em 1.1.7, talvez pense em adicionar alguns testes de integração / unidade / regressão para cobrir o caso não tão incomum de espaços em nomes de caminho do Windows (ou Linux) antes de liberá-lo ...

Vocês precisam de apoio nisso ou já existe alguém trabalhando ativamente nisso?

@ julian-becker, em primeiro lugar, gostaria de falar sobre o seu início agressivo:

como esse problema ainda não foi corrigido ?!

É rude. O pessoal da comunidade de código aberto não lhe deve muito tempo ou atenção. O que torna o seu tempo livre mais precioso do que os mantenedores ou o nosso? Parece que você não perdeu tempo vendo que aqui :

Tenho um grande problema - muitos novos clientes fluindo para minha empresa de consultoria. O problema: muito pouco tempo para trabalhar em qualquer outra coisa.

Você também perdeu a solução e o fork que @shadow compartilhou.

Em segundo lugar, você tem um ótimo plano de jogo sobre como isso deve ser feito. Faça! Se você tiver tempo, todos os que estão assistindo a esse problema apreciarão a correção. Dê uma olhada no que @shadow fez, adicione os testes, faça um RP e procure ajuda aqui com a revisão do código. Alguém tem interesse próprio o suficiente para ajudar a fazer. Boa sorte e entre em contato aqui se precisar de ajuda! 👏

começar um PR

Para evitar uma possível confusão e o trabalho ser feito duas vezes, gostaria de observar que minha correção foi

Perfeito! Eu também não tive muito tempo para ler. 😆

@shadow Acabei de encontrar esse problema de novo, alguma ideia de quando será lançado?

@coreybutler Você se importaria de criar um link para o lançamento em meu fork em uma postagem final aqui e, em seguida, bloquear este tópico? Eu não acho que haja necessidade de discutir isso mais ...

@coreybutler pode ser possível fazer o lançamento?

Por favor, libere isso :)

Usar o fork liberado pela shadow (veja o link acima) funcionou para mim como a única coisa. Muito obrigado!

Eu vinculei o lançamento de @shadow em problemas comuns .

Desculpe, estou demorando tanto para fazer um lançamento. Eu sei que parece simples, mas o tempo tem sido cruel para mim. Talvez eu escreva sobre isso algum dia.

1. No cmd, vá para o diretório inicial e digite dir / x para ver o nome abreviado para esta pasta
2. Em seguida, substitua seu nome de usuário por este nome abreviado no arquivo setting.txt
3. Funciona

+1 Para quem deseja resolver o problema editando o arquivo settings.txt, você pode tentar isso na linha de comando para obter o caminho formatado correto

cmd / c para% A em ("C: \ Usuários \ Meu nome com Spaces \ AppData \ Roamingnvm") do @echo % ~ sA

Muito obrigado, essa coisa salvou minha vida.

Resolvido !!

Para quem não consegue trabalhar com ~ 1 método de @kirkouimet (obrigado amigo)
Abra o CMD, vá para a pasta Usuários e obtenha o nome da pasta abreviada.

e digite

> dir\x

Annotation 2020-05-25 112714

Agora, depois de copiar ou anotar o nome da pasta
Annotation 2020-05-25 113201

Espero que ajude

Resolvido !!

Para quem não consegue trabalhar com ~ 1 método de @kirkouimet (obrigado amigo)
Abra o CMD, vá para a pasta Usuários e obtenha o nome da pasta abreviada.

e digite

> dir\x

Annotation 2020-05-25 112714

Agora, depois de copiar ou anotar o nome da pasta
Annotation 2020-05-25 113201

Espero que ajude

Obrigado a todos que sugeriram a solução settings.txt, mas especialmente Swarag-N por uma explicação tão completa. Estou feliz por ter chegado aqui e não mudei o nome da minha pasta de perfil de usuário.
Obrigado

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

Questões relacionadas

eliavmaman picture eliavmaman  ·  6Comentários

leiamac picture leiamac  ·  4Comentários

keylowgee picture keylowgee  ·  6Comentários

AllainPL picture AllainPL  ·  7Comentários

Deilan picture Deilan  ·  4Comentários