Nvm-windows: Problema con los espacios en blanco en la ruta

Creado en 17 feb. 2015  ·  71Comentarios  ·  Fuente: coreybutler/nvm-windows

¡Hola! Tengo un problema al intentar nvm use <node_version>
captura
Perdón por el idioma español en la captura de pantalla. Significa que "c: \ Users \ Edu" no se reconoce como un comando interno ... bla bla bla.
Mi nombre de usuario es "Edu Martin" y mi ruta es "c: \ Users \ Edu Martin \ AppData \ Roaming \ nvm"
¿Es posible que haya un error con espacios negros en la ruta? Todas las configuraciones en mi aplicación son estándar

Comentario más útil

Entonces, una solución a esto es editar su settings.txt y usar el esquema de nomenclatura de carpetas de Windows alternativo que no tiene espacios, que para mi caso fue:

2

(settings.txt está en AppData \ Roaming \ nvm de forma predeterminada)

Todos 71 comentarios

+1

La solución para mí fue desinstalar y luego reinstalar para Public usuario. ¡No es ideal, pero está feliz de ejecutar NVM en Windows!

+1 muchas instalaciones de Windows tienen nombres de usuario con espacios

+1 para esto, encontré el mismo problema con mi nombre de usuario

1

Entonces, una solución a esto es editar su settings.txt y usar el esquema de nomenclatura de carpetas de Windows alternativo que no tiene espacios, que para mi caso fue:

2

(settings.txt está en AppData \ Roaming \ nvm de forma predeterminada)

@coreybutler, ¿podemos arreglar esto?

: rezar:: rezar:: rezar:: rezar:: rezar:: rezar:: rezar:: rezar:: rezar:: rezar:: rezar:: rezar:: rezar:

aquí hay un gif para intentar coaccionarte ...

Mi entorno de compilación ha cambiado recientemente / sustancialmente, por lo que el problema es liberar los binarios (tenía un script de compilación realmente personalizado). Me complacería agregar la solución a la rama maestra, solo requeriría compilar desde la fuente.

Tengo que ir al Reino Unido la semana que viene, pero cuando regrese a los EE. UU. Abordaré esto tan pronto como pueda.

Eso sería encantador @coreybutler :) Además, ¿quizás podamos vincular la siguiente compilación (con este parche) a la # 17, etc.?

Tenía este problema porque quería usar "C: \ Documents and Settings (mi nombre) \ Application Data \ nvm" como raíz. Entonces, lo que hice fue reinstalar nvm, especificando "C: \" como la raíz en lugar del predeterminado durante la instalación, por lo que ahora está almacenando todas las versiones de Node en "C: \ nvm", que por supuesto no tiene espacios en el sendero. Settings.txt confirma esto como la raíz. Solo necesitaba recordar cd a C: \ antes de usar cualquiera de los comandos nvm, de lo contrario arrojó un error diciendo que no puede encontrar settings.txt. En mi caso, dado que C: \ no está asociado con ningún usuario, cuando cambio a una versión de Node usando "nvm use <version>" me pregunta qué cuenta de usuario quiero usar para ejecutar el programa. Pero parece estar funcionando bien; Recibo el mensaje "ahora usando el nodo <versión>".

+1 Para cualquiera que quiera hacer la solución temporal editando el archivo settings.txt, puede probar esto desde la línea de comando para obtener la ruta formateada correcta

cmd / c para% A en ("C: \ Usuarios \ Mi nombre con espacios \ AppData \ Roaming \ nvm") haz @echo % ~ sA

La instalación de nvm-windows en Archivos de programa también provoca este error. La actualización de settings.txt como se muestra a continuación resuelve el problema, pero sería bueno arreglarlo o agregarlo al archivo Léame como un '¡Te pillé!'.

raíz: C: \ PROGRA ~ 1 \ nvm
ruta: C: \ PROGRA ~ 1 \ nodejs

El uso de un enlace de unión simbólico en Windows que encontré también es una solución adecuada para este problema
usa algo como esto
mklink / J nvm_home "C: \ Users \ Chris McGrath \ AppData \ Roaming \ nvm"

luego actualice settings.txt con la dirección de unión

una vez que creé este enlace, el cambio comenzó a funcionar sin ningún problema

Entonces, este tema ha estado abierto durante casi un año. ¿NVm-windows está muerto?

@codeimpossible : no estoy muerto, solo tengo prioridades más altas de la vida con las que lidiar. Publicaré una nota al respecto en gitter.

@coreybutler solo quería hacerle saber que uso nvm-windows todos los días y agradezco todo el arduo trabajo que dedicó al proyecto

@kirkouimet Gracias ... ¡

Hola coreybutler, gran trabajo con nvm. Esto realmente me está facilitando la vida: D

Pero, ¿puedes escribir información sobre el espacio en cualquier lugar? Algo como

"Si tiene un espacio en su nombre de usuario, cambie el directorio predeterminado que usa el instalador y elija la ruta sin espacio".

Nunca he editado wiki en github. Tengo un poco de miedo de lo que puedo hacer.

@AntiCZ - Buena idea. Agregué una página de problemas comunes para abordar esto. Continuaré agregando a esto según sea necesario.

Resuelvo el mío usando:
cmd / c para% A en ("C: \ Usuarios \ Mi nombre con espacios \ AppData \ Roaming \ nvm") haz @echo % ~ sA
por @mhchristensen .
Y luego cambia la raíz en setting.txt
Muchas gracias: +1:

Sin un espacio en $env:USERPROFILE ¿la gente todavía tiene problemas con la ruta de nodejs que tiene espacios en Archivos de programa? No veo el mismo comportamiento en mi máquina virtual Windows 2012R2.

Voy a probar con un usuario con un espacio en el nombre para ver si eso está causando una falla en cascada de algún tipo. Sería genial obtener algunas versiones del sistema operativo y qué indicador de cmd está utilizando (PowerShell / CMD / Bash4Windows / GitBash).

Ahora mismo estoy refactorizando un paquete Chocolatey que alguien creó para nvm y espero publicarlo pronto. Evita el instalador y usa la ruta de instalación de chocolate que no tiene espacios, y no he tenido ningún problema con la ruta del nodo que tiene espacios en el archivo settings.txt.

Tuve casi el mismo problema, excepto que mi nombre de usuario tiene un ampersand (&) en lugar de un espacio. En esta situación, usar el nombre de carpeta alternativo no ayudó, porque incluso el nombre corto todavía tiene el signo comercial. Sin embargo, crear un enlace simbólico, como sugirió @clmcgrath , fue una buena solución para mí.

Simplemente instálelo en un directorio sin nada especial. Por ejemplo: C: \ nvm \

También por qué el paquete NVM en Chocolatey usa la ruta C: \ ProgramData \ nvm ya que es el equivalente de Archivos de programa de "Todos los usuarios" pero sin espacios.

Esto se puede solucionar utilizando nombres alternativos para carpetas o archivos con espacios. Por ejemplo, tengo nvm instalado en "C: \ Archivos de programa \ nvm". Vaya a la carpeta que está encima de las que tienen el espacio y use la opción / X para obtener una lista de directorios con nombres antiguos de 8.3:

CD \
dir / X

Tengo una línea que parece ...

15/02/2017 03:44 p.m. \

Luego, simplemente edite el archivo settings.txt (en \ Archivos de programa \ nvm en mi caso) y edite el nombre de la carpeta ofensiva:

raíz: C: \ Progra \ ~ 1 \ nvm
ruta: C: \ Progra \ ~ 1 \ nodejs

(Esta es la misma solución que @markbrownsword dio hace más de un año, pero su mensaje fue

ventanas

muévete al camino allí sin espacios en blanco

o

ejecutando cmd como administrador
y luego mklink a la nueva ruta allí sin espacios en blanco.

@coreybutler ¿ Alguna noticia sobre este tema? Me acaba de golpear. Estoy dispuesto a hacer publicidad si me dices qué buscar :)

Acabo de publicar previamente la versión 1.1.6 , que aprovecha un nuevo sistema de administración de rutas en Go 1.8.3. Todas mis pruebas locales funcionan con espacios y caracteres especiales en las rutas, pero por el momento solo puedo probar en una instalación en inglés de Windows 10. Espero que algunas personas que han experimentado este problema puedan probarlo. Suponiendo que el problema se resuelva, lanzaré 1.1.6 oficialmente como solución.

TBH, no he tenido este problema en varios lanzamientos ahora, ha sido bastante fluido durante un año más o menos.

@clmcgrath - ¡

Para aclarar, mi principal curiosidad son las instalaciones que no están en inglés, que estaban produciendo algunos caracteres ocultos que Go reconoció como un terminador de cadena ... estaba cortando el camino prematuramente.

Todavía no funciona. Intenté cambiar setting.txt que tampoco ayudó.

@chillerfx : ¿se ejecuta algún comando o simplemente nvm use fallando? Además, ¿en qué lugar se encuentra su entorno (que no sea en inglés?)

En mi sistema operativo Windows 7, 'nvm list' funciona pero 'nvm use' No funciona. Mi lugar es el inglés. También cambiar settings.txt para usar ~ 1 debido a que el espacio en el nombre de usuario no funciona. Cuando se hace esto, nvm list tampoco funciona.

Mi configuración:

nvm v1.1.6
Windows 10 Pro (versión 1703, compilación 15063.540)
Configuración regional: inglés (Reino Unido)

Aún tengo este problema. nvm install latest funciona pero nvm use 8.4.0 falla. Mi nombre de usuario tiene un espacio como "John Smith" y el error que obtengo es exit status 1: 'C:\Users\John' is not recognized as an internal or external command, operable program or batch file.

Sin embargo, todo (listar, usar, instalar) funciona cuando edito mi archivo de configuración como sugiere @ ryan-mcguire.

¿Pueden los que tienen problemas ejecutar nvm root e informar lo que se imprime?

raíz de nvm: C:\Users\Jeff Utz\AppData\Roaming\nvm

Mi configuración:

nvm v1.1.6
Windows 10 Pro (1703, compilación 15063.540)
Configuración regional: inglés (EE. UU.)

Todos los comandos funcionan con la excepción de nvm use ... nvm on habilitarán nvm pero luego darán el error exit status 1

Intente utilizar el nombre de ruta abreviado.
Para encontrar el camino acortado:
C: \ Usuarios
dir / x

No olvide reiniciar Windows.

error

¿Cómo solucionar el error? Por favor, comparta su respuesta.

@ psiddharth709 : deje de publicar la misma pregunta en varios números.

Busco la solución c: \ nvm. Me gusta tener mis cosas, esp. en Windows en una carpeta que puedo encontrar fácilmente (c: \ xammp es mi servidor apache). Lo hice de esa manera y todo está bien. Gracias por el arduo trabajo.

@coreybutler Puede probar el problema instalando nvm en cualquier carpeta con carácter de espacio. Por ejemplo, en C:\Program files\nvm (el error es como lo muestra XepherX arriba - "'C: \ Programa' no es reconocido ...").

Supongo que el problema es ejecutar elevate.cmd con exec.Command . No estoy seguro porque no sé cómo depurar Go. Pero cuando cambio el nombre de elevate.cmd obtengo un error sobre el archivo que falta y cuando restauro elevate.cmd obtengo el error "'C: \ Program' no se reconoce ..."

Entonces esto no parece ser un problema con un juego de caracteres. Y el problema ocurre tanto en Windows 7 como en Windows 10. Incluso si cmd ya está elevado (Ejecutar como administrador).

@coreybutler Desafortunadamente, sigue siendo el mismo problema para mí que para todos los demás en este problema, incluso usando la versión preliminar 1.1.6.

¡Gracias a todos! Mis disculpas por los retrasos en la publicación de una nueva versión ... todavía estoy abrumado (y contratando).

@Eccenux : es posible que haya algo allí. Revisaré el elevate.cmd . Go está compilado, por lo que la depuración ocurre antes de la compilación. Creo que el comando de elevación es un culpable más probable, pero confirmará la primera oportunidad que tenga.

Tuve el mismo problema que @davidrosevear. nvm install funcionó con 1.1.6, pero nvm use no. Avísame si puedo ayudar en algo @coreybutler.

Sigo teniendo este problema

@seanpoulter y cualquier otra persona interesada en ayudar ...

Tengo un gran problema: muchos clientes nuevos fluyen hacia mi empresa de consultoría. El problema: anormalmente poco tiempo para trabajar en cualquier otra cosa. Cualquier ojo adicional que pudiera echar un vistazo a este tema sería muy apreciado. Todavía no he tenido la oportunidad de analizar la sugerencia de @Eccenux con elevate.cmd , pero creo que ese es el punto de partida. 1.1.6 tiene un montón de caracteres nativos de go que se escapan, por lo que mi instinto dice que el problema no es con Go ... pero el comando elevate no se prueba con el resto del código.

¡Felicitaciones! De hecho, es un gran problema.

Veamos una solución comunitaria y relaciones públicas para este mientras @coreybutler está ocupado. Tengo un gran PR para revisar en otro repositorio (vscode-jest), por lo que pasará un poco antes de que pueda sumergirme en este.

esas versiones de archivo abreviadas no funcionan y tampoco lo hace la instalación de R en una ruta con un espacio
¿Cómo podemos solucionar estos problemas? Si instalamos R en un directorio diferente, ¿seguirá usando la ruta variable para cualquier otra cosa?

Como ha pasado un tiempo desde la última versión aquí, decidí publicar una que contenga la corrección que envié justo antes en mi bifurcación mientras tanto:
https://github.com/shadow/nvm-windows/releases/tag/1.1.7

Resolví moviéndolo a C: nvm, pero me gustaría saber si hay alguna solución planeada ...

Gracias @shadow, acabo de instalar tu versión procedente de v 1.1.6 con mi nombre de usuario "Cody Swartz" en mi camino. Recibía el mismo error que todos los demás y tu solución se ve limpia y al grano. ¡Ahora funciona nvm use ! 🎉

Acabo de descargar e instalar nvm para Windows por primera vez hoy y encontré este problema. Estoy ejecutando la versión 1.1.7. ¿Hay algo que me falta aquí? ¿No debería haberse solucionado esto para v1.1.6 y posteriores?

También tengo este problema. Haciendo que todo sea prácticamente inutilizable.

EDITAR: Se solucionó a través del truco ~ 1.

Entonces, una solución a esto es editar su settings.txt y usar el esquema de nomenclatura de carpetas de Windows alternativo que no tiene espacios, que para mi caso fue:

Solo para expandir esto de manera más precisa, la conversión es la siguiente: C: \ Users \ John Doe -> C: \ Users \ JOHND ~ 1

El error aún permanece. No esta resuelto Usando nvm 1.17

raíz: C: \ PROGRA1nvm
ruta: C: \ PROGRA1 \ nodejs

La configuración mencionada anteriormente en este hilo es incorrecta, o al menos no funciona para mí ...;)
Para cualquiera que se tropiece con este tema.
Cuando haya instalado nvm y nodejs en C: \ Archivos de programa, use la siguiente configuración en settings.txt y debería funcionar.

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

@ Laslo89 tiene la respuesta correcta, reemplazar el espacio con ~ funciona bien

Entonces, una solución a esto es editar su settings.txt y usar el esquema de nomenclatura de carpetas de Windows alternativo que no tiene espacios, que para mi caso fue:

2

(settings.txt está en AppData \ Roamingnvm de forma predeterminada)

Una nota rápida para aquellos que carecen de habilidades tecnológicas generales como yo. Si usa dir *. /x en el símbolo del sistema, enumerará los directorios dentro de la ubicación actual, dándole el nombre del formulario 8.3 en la columna del medio. Luego puede usar esto para cambiar la configuración como se describe anteriormente. Aunque, como se mencionó anteriormente, Program Files convierte en PROGRA~1 .

¿Qué sitio web proporciona el último tutorial relacionado con iones? Por favor dígame.....

>

¿Cómo es que este problema aún no se ha solucionado? Si se trata de una regresión en 1.1.7, tal vez piense en agregar algunas pruebas de integración / unidad / regresión para cubrir el caso no tan infrecuente de espacios en Windows (o Linux para el caso) nombres de ruta antes de lanzarlo ...

¿Necesitan apoyo en esto o ya hay alguien trabajando activamente en esto?

@ julian-becker, en primer lugar, me gustaría mencionar su comienzo agresivo:

¿Cómo es que este problema aún no se ha solucionado?

Es grosero. La gente de la comunidad de código abierto no le debe su tiempo ni su atención. ¿Qué hace que su tiempo libre sea más valioso que los mantenedores o el nuestro? Parece que no pasó el tiempo para ver que @coreybutler ya ha respondido a su pregunta aquí :

Tengo un gran problema: muchos clientes nuevos ingresan a mi empresa de consultoría. El problema: anormalmente poco tiempo para trabajar en cualquier otra cosa.

También te perdiste la solución y la bifurcación que compartió @shadow.

En segundo lugar, tiene un gran plan de juego sobre cómo se debe hacer esto. ¡Hazlo! Si tiene tiempo, todos los que vean este problema agradecerán que se solucione. Eche un vistazo a lo que ha hecho @shadow, agregue las pruebas, ponga en marcha un PR y comuníquese aquí para obtener ayuda con la revisión del código. Alguien está lo suficientemente interesado en sí mismo como para ayudar a terminar. ¡Buena suerte y comunícate aquí si necesitas ayuda! 👏

conseguir un PR en marcha

Para evitar una posible confusión y que el trabajo se realice dos veces, me gustaría señalar que mi solución ya se fusionó , es solo una cuestión de liberarla.

¡Perfecto! Yo tampoco tuve mucho tiempo para leer. 😆

@shadow Acabo de encontrarme con este problema nuevamente, ¿alguna idea de cuándo se lanzará?

@coreybutler ¿Te importaría vincular el lanzamiento en mi bifurcación en una publicación final aquí y luego bloquear este hilo? No creo que sea necesario discutirlo más ...

@coreybutler ¿ será posible hacer el lanzamiento?

Por favor suelte esto :)

Usar la bifurcación liberada por la sombra (ver enlace arriba) funcionó para mí como lo único. ¡Muchas gracias!

Me he vinculado al lanzamiento de @shadow en problemas comunes .

Siento que me esté tomando tanto tiempo cortar un comunicado. Sé que parece sencillo, pero el tiempo ha sido brutal para mí. Quizás algún día escriba sobre eso.

1.En cmd, vaya a su directorio de inicio y escriba dir / x para ver el nombre abreviado de esta carpeta
2.A continuación, reemplace su nombre de usuario con este nombre abreviado en el archivo setting.txt
3.Funciona

+1 Para cualquiera que quiera hacer la solución temporal editando el archivo settings.txt, puede probar esto desde la línea de comando para obtener la ruta formateada correcta

cmd / c para% A en ( "C: \ Users \ mi nombre con espacios \ AppData \ Roamingnvm") do @echo% ~ sa

Muchas gracias, esto me salvó la vida.

¡¡Resuelto !!

Para alguien que no puede trabajar con ~ 1 método de @kirkouimet (Gracias amigo)
Abra CMD, vaya a la carpeta Usuarios y obtenga el nombre de la carpeta abreviada.

y escriba

> dir\x

Annotation 2020-05-25 112714

Ahora más tarde, después de copiar o anotar el nombre de la carpeta
Annotation 2020-05-25 113201

Espero eso ayude

¡¡Resuelto !!

Para alguien que no puede trabajar con ~ 1 método de @kirkouimet (Gracias amigo)
Abra CMD, vaya a la carpeta Usuarios y obtenga el nombre de la carpeta abreviada.

y escriba

> dir\x

Annotation 2020-05-25 112714

Ahora más tarde, después de copiar o anotar el nombre de la carpeta
Annotation 2020-05-25 113201

Espero eso ayude

Gracias a todos los que sugirieron la solución settings.txt, pero especialmente Swarag-N por una explicación tan completa. Me alegro de haber llegado aquí y no haber cambiado el nombre de la carpeta de mi perfil de usuario.
Gracias

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

thany picture thany  ·  4Comentarios

leiamac picture leiamac  ·  4Comentarios

ctsstc picture ctsstc  ·  3Comentarios

SufyanParkar picture SufyanParkar  ·  4Comentarios

webspecialist picture webspecialist  ·  5Comentarios