Nvm-windows: nvm no funciona en situaciones de 32/64 bits para Windows 7

Creado en 18 jul. 2016  ·  10Comentarios  ·  Fuente: coreybutler/nvm-windows

Mi entorno

  • [X] Windows 7 o inferior (no es realmente compatible debido a EOL)
  • [] Windows 8
  • [] Windows 8.1
  • [] Windows 10
  • [] Windows 10 IoT Core
  • [] Windows Server 2012
  • [] Windows Server 2012 R2
  • [] Windows Server 2016
  • [] Mi instalación de Windows no está en inglés.

    Ya tengo...

  • [X] lea el archivo README para estar al tanto de errores de npm y problemas de antivirus.

  • [X] revisó la wiki para asegurarse de que mi problema aún no se haya resuelto.
  • [X] verificado Estoy usando una cuenta con privilegios administrativos.
  • [X] buscó los problemas (abiertos y cerrados) para asegurarse de que no sea un duplicado.
  • [X] se aseguró de que esta no sea una pregunta sobre cómo usar NVM para Windows, ya que gitter se usa para preguntas y comentarios.

    Mi problema está relacionado con (marque solo los que correspondan):

  • [] settings.txt

  • [] soporte de proxy
  • [X] Soporte de 32 o 64 bits

    Comportamiento esperado

Estoy ejecutando Windows 7/64 bit
Instalé (con admin priv) el NVM para Windows 1.1.1. A partir de ahí, usé

nvm install 6.1.0 all
nvm install 6.3.0 all

Entonces llamé
nvm list
Resultando en

C:\Users\kagentes>nvm list
    6.3.0
    6.1.0

Luego corrí
nvm use 6.3.0 64

y entonces
node -v
y esperaba conseguir
v6.3.0

Comportamiento real

Al correr
node -v
yo obtengo

'node' is not recognized as an internal or external command,
operable program or batch file.

Además, incluso después de configurar el comando nvm use, noto que la lista no parece confirmar que el comando "use" esté funcionando. Como en:

C:\Users\kagentes>nvm use 6.3.0 64
Now using node v6.3.0 (64-bit)

C:\Users\kagentes>nvm list

    6.3.0
    6.1.0

De las capturas de pantalla en la página https://github.com/coreybutler/nvm-windows , creo que el comando nvm list debería devolver algo como esto a continuación (pero NO obtengo esto )

C:\Users\kagentes>nvm list

*   6.3.0 (In Use)
    6.1.0

No tiene el asterisco ni el indicador "en uso".

Posiblemente, esto también ayudará a diagnosticar el problema, pero cuando hago el comando nvm arch obtengo los siguientes resultados extraños, independientemente de lo que haya configurado en nvm use :

C:\Users\kagentes>nvm arch
System Default: 64-bit.
Currently Configured: -bit.

Pasos para reproducir el problema:

Los pasos para reproducir ya se dan en la sección de comportamiento esperado anterior. Ya probé posibles recomendaciones en otros temas, como el Problema # 146, así como reiniciar el shell, reiniciar la computadora y asegurarme de que todo se hizo con privilegios de administrador. Antes de comenzar con todo esto, desinstalé versiones anteriores de Node que estaban en la computadora. (luego instaló nvm-windows y siguió sus instrucciones).

help wanted

Comentario más útil

@kgentes -

Después de desinstalar el nodo, asegúrese de que el directorio donde se instaló originalmente el nodo se haya eliminado y no solo esté vacío. Para Windows 7, 64 bits, el valor predeterminado es "C: Program Filesnodejs".

Si el directorio "nodejs" todavía existe, entonces el comando "nvm use" no puede hacer el enlace simbólico a la versión del nodo bajo el control de nvm.

Tuve el mismo problema hasta que eliminé manualmente el directorio "nodejs".

Espero que ayude

Todos 10 comentarios

Lamento hacer la pregunta obvia, pero ¿intentó reiniciar la ventana de la terminal? En Win7, a veces todavía se ahoga la primera vez que intenta utilizar una versión específica (mklink).

Sí, lo hice. Intenté reiniciar la ventana de la terminal ... luego incluso la máquina ... ni cambió el resultado.

Bien, investigaré esto si tengo tiempo. Desafortunadamente, Win7 no es algo a lo que me acerque a menudo.

@kgentes -

Después de desinstalar el nodo, asegúrese de que el directorio donde se instaló originalmente el nodo se haya eliminado y no solo esté vacío. Para Windows 7, 64 bits, el valor predeterminado es "C: Program Filesnodejs".

Si el directorio "nodejs" todavía existe, entonces el comando "nvm use" no puede hacer el enlace simbólico a la versión del nodo bajo el control de nvm.

Tuve el mismo problema hasta que eliminé manualmente el directorio "nodejs".

Espero que ayude

Gracias @pleverett .. Lo intentaré pronto .. agradezco el

@pleverett ¡ GRACIAS SEÑOR! ¡Esto funcionó como lo anunciaron! ¡Super gusta! Este hilo se puede cerrar. Probablemente debería marcarse como una solución (no estoy seguro de si eso es algo que se puede hacer, aquí, soy nuevo en este ecosistema) para los futuros usuarios de Windows 7 que puedan tener este problema. NVM para Windows está funcionando sin problemas ahora, una vez que eliminé el directorio "C: Program Filesnodejs" ("C: Program Files (x86) nodejs" para 32bit) que aparentemente no se elimina por defecto del desinstalador. Junto con ese directorio también eliminé:
- "C: UsersusernameAppDataRoamingnpm"
- "C: UsersusernameAppDataRoamingnpm-cache"

Aunque probablemente eso no era necesario.

De todos modos, todo está funcionando. ¡Gracias!

@pleverett @coreybutler

otro problema relacionado ---
ahora que puedo ver y cambiar las versiones del nodo a través de nvm, me pregunto si debería ver resultados diferentes cuando hago lo siguiente:

npm config list

Por el momento, nada de la información, excepto la variable siguiente, cambia.
user-agent = "npm/3.10.3 node/v6.3.0 win32 ia32"

todos los demás permanecen igual. Y parece que solo hay una versión de módulos de nodo instalados globalmente.

Si solo estoy cambiando de la versión de 64 bits de 6.3.0 a la versión de 32 bits de 6.3.0, ¿tendré las mismas instalaciones de módulos de nodo global? ¿O hará distintos? ¿O necesito hacer un cambio de versión para obtener un conjunto diferente de módulos de nodo instalados globalmente? Idealmente, creo que mantendría un contexto único para cada versión de bit (debido a los módulos de nodo nativo como libxml - ??? etc.), pero puedo ver por qué a otros no les gustaría que funcione de esa manera.

¿Todavía lo estoy usando mal? ¿O es un error relacionado?

ya que esto todavía funciona en el mismo hilo, quería volver a abrir esto en lugar de crear un nuevo problema ... [ver comentario anterior para mi estado actualizado]

@kgentes - Lamento

Si solo cambia de 32-> 64 bits o viceversa, NVM4W usará el mismo directorio global node_modules . Esto se hizo intencionalmente, principalmente para mantener la huella general del entorno de nodo al mínimo. Tener directorios de instalación separados para 32/64 bits duplicará la huella de la mayoría de los usuarios ... y la huella general es algo en lo que la mayoría de los usuarios ni siquiera piensan hasta que se quedan sin espacio. A pesar de esto, me estoy inclinando hacia el uso de un directorio de instalación individual por versión + arquitectura proc de todos modos. Realmente debería depender del usuario y, como dijiste, esto rompe algunos paquetes nativos.

Estoy cerrando esto porque el tema es un poco diferente. No dude en abrir una nueva edición si lo desea.

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

Temas relacionados

webspecialist picture webspecialist  ·  5Comentarios

fredericrous picture fredericrous  ·  3Comentarios

keylowgee picture keylowgee  ·  6Comentarios

snerte picture snerte  ·  5Comentarios

hsali picture hsali  ·  4Comentarios