Nvm-windows: npm falla: "No se puede encontrar el módulo 'semver' (nodo v8.4.0)

Creado en 15 sept. 2017  ·  39Comentarios  ·  Fuente: coreybutler/nvm-windows

Si esta es una pregunta sobre cómo usar NVM4W, use stackoverflow en su lugar.

Si se trata de un problema relacionado con el antivirus, asegúrese de buscar primero los problemas existentes.

Mi entorno

  • [] Windows 7 o inferior (no es realmente compatible debido a EOL; consulte la wiki para obtener más detalles)
  • [] Windows 8
  • [] Windows 8.1
  • [X] 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.

Estoy usando la versión NVM4W:

  • [] 1.1.6
  • [X] 1.1.5
  • [] 1.1.4
  • [] 1.1.3
  • [] 1.1.2
  • [] 1.1.1
  • [ ] Mayor
  • [ ] Otros (especificar)

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 (¿ha probado la versión 1.1.0+?)
  • [] Soporte de 32 o 64 bits (¿Ha probado la versión 1.1.3+?)
  • [] Carácter que se escapa (¿ha probado la versión 1.1.6+?)
  • [X] Un entorno de shell estándar (terminal / powershell)
  • [] Un entorno de shell no estándar (Cmder, Hyper, Cygwin, git)

Comportamiento esperado

Devuelve el número de versión correcto.

Comportamiento real

module.js: 491
tirar err;
^

Error: no se puede encontrar el módulo 'semver'
en Function.Module._resolveFilename (module.js: 489: 15)
en Function.Module._load (module.js: 439: 25)
en Module.require (module.js: 517: 17)
en require (internal / module.js: 11:18)
en Object.(C: \ Users \ leofu \ AppData \ Roaming \ nvm \ nvm \ v8.4.0 \ node_modules \ npm \ lib \ utils \ unsupported.js: 2: 14)
en Module._compile (module.js: 573: 30)
en Object.Module._extensions..js (module.js: 584: 10)
en Module.load (module.js: 507: 32)
en tryModuleLoad (module.js: 470: 12)
en Function.Module._load (module.js: 462: 3)
module.js: 491
tirar err;
^

Error: no se puede encontrar el módulo 'semver'
en Function.Module._resolveFilename (module.js: 489: 15)
en Function.Module._load (module.js: 439: 25)
en Module.require (module.js: 517: 17)
en require (internal / module.js: 11:18)
en Object.(C: \ Users \ leofu \ AppData \ Roaming \ nvm \ nvm \ v8.4.0 \ node_modules \ npm \ lib \ utils \ unsupported.js: 2: 14)
en Module._compile (module.js: 573: 30)
en Object.Module._extensions..js (module.js: 584: 10)
en Module.load (module.js: 507: 32)
en tryModuleLoad (module.js: 470: 12)
en Function.Module._load (module.js: 462: 3)

Pasos para reproducir el problema:

nvm install 8.4.0
nvm use 8.4.0
npm -v

help wanted

Comentario más útil

Lo mismo en el último 8.8.1.
No estoy seguro de cómo solucionar esto a través de NVM, ya que lo que SO sugiere es una reinstalación limpia del nodo. Dada la naturaleza de las instalaciones de nvm, no estoy seguro de cómo replicar estos pasos. Entonces, ¿la única forma de usar el nodo v8 es simplemente no usar NVM?
https://stackoverflow.com/questions/33870520/npm-install-cannot-find-module-semver

Solución alterna

  1. nvm install 8.8.1 (u otra versión que desee). No lo cambie (todavía).
  2. Descargue el * .zip de la misma versión de nodo del sitio oficial (https://nodejs.org/en/download/current/)
  3. Sustituya el contenido de %APPDATA%/nvm/v8.8.1/npm por la carpeta npm del archivo descargado
  4. nvm use 8.8.1
  5. Disfrutar

Todos 39 comentarios

Este es un error de npm, no del todo un error de NVM. Sugeriría reinstalar el nodo 8.4.0 ... tal vez la descarga de npm fue mala o algo estaba dañado.

@coreybutler No funciona, sigue fallando incluso desactivando, desinstalando, quitando manualmente la carpeta reinstalando y reactivando. Mismo error.

Incluso copié las dependencias node_modules de npm de otra instalación normal en funcionamiento del nodo 8.5.0 y sigo teniendo problemas. ¿Podrías investigar más y ver cuál es el problema?

El nvm es una herramienta muy útil pero ya no funciona, y es una pena :(

No estoy seguro de qué decirte ... Puedo instalar semver muy bien con la misma configuración.

image

@coreybutler acaba de abrir una nueva edición con los detalles

Mi propio entorno y los pasos que utilicé para replicar el problema aquí (duplicado cerrado): # 305

Lo mismo en el último 8.8.1.
No estoy seguro de cómo solucionar esto a través de NVM, ya que lo que SO sugiere es una reinstalación limpia del nodo. Dada la naturaleza de las instalaciones de nvm, no estoy seguro de cómo replicar estos pasos. Entonces, ¿la única forma de usar el nodo v8 es simplemente no usar NVM?
https://stackoverflow.com/questions/33870520/npm-install-cannot-find-module-semver

Solución alterna

  1. nvm install 8.8.1 (u otra versión que desee). No lo cambie (todavía).
  2. Descargue el * .zip de la misma versión de nodo del sitio oficial (https://nodejs.org/en/download/current/)
  3. Sustituya el contenido de %APPDATA%/nvm/v8.8.1/npm por la carpeta npm del archivo descargado
  4. nvm use 8.8.1
  5. Disfrutar

gracias @ roman-spiridonov acaba de encontrar el mismo error en el nodo 8.8.1 instalado a través de nvm en Windows y su solución parece funcionar

Parece que también ha funcionado con la última versión de node (9.1.0).

parece que npm que está instalado desde npm no es compatible con el nodo en sí, debe descargar el zip y reemplazar el módulo npm como sugirió @ roman-spiridonov

@coreybutler, ¿esto no se abordará? Veo exactamente el mismo error exactamente: cualquier cosa por encima de = <8.0.

Desafortunadamente, no puedo ejecutar npm i semver Recibo el mismo error.

@ roman-spiridonov No encuentro que "npm" sea una carpeta, sino un archivo en el .zip descargado. Reemplazarlo con el descargado no parece resolver los problemas de semver para mí (sé que otros han tenido éxito)

Tengo el mismo problema.

La solución alternativa de @ roman-spiridonov funciona para mí.

node 8.9.1
npm 5.5.1

@hyndsite , debe buscar dentro del directorio node_modules , dentro de ese directorio npm . Usa eso y debería funcionar.

Gracias @powellian Lo encontré ayer e iba a publicar una nueva actualización en el mensaje de @ roman-spiridonov, que la ruta correcta es %APPDATA%/nvm/v8.8.1/node_modules/npm

El archivo "npm" en la ruta /nvm/vx.xx ayudó a confundir el asunto.

Gracias, funciona, pero ahora me pregunto por qué el paquete que descarga nvm y el que descargamos es diferente.

El mismo problema con 8.9.0 y la solución alternativa de @ roman-spiridonov salvó el día.

Como @benavern , tengo curiosidad por saber por qué el paquete que instala nvm es diferente al del repositorio oficial.

Lo mismo en la última versión 8.9.4.
El error se resolvió eliminando el directorio 'C: \ Users \ yourname \ AppData \ Roamingnvm \ v *' y volviendo a ejecutar 'nvm install'.

Solución alterna:

Si encuentra este problema y está usando Windows 10, habilite rutas largas usando el Editor del Registro o el Editor de políticas de grupo local.

Ref: https://github.com/coreybutler/nvm-windows/issues/305#issuecomment -345024594
Ref: https://superuser.com/a/1119948

Pero para mí, todavía necesitaba hacer la solución de @ roman-spiridonov. Sin embargo, no pude copiar la carpeta npm en Explorer, en su lugar, necesitaba usar robocopy:

robocopy "C:\Users\username\Downloads\node-v8.9.4-win-x64\node_modules\npm" "C:\Users\username\AppData\Roaming\nvm\v8.9.4\node_modules\npm" /mir

alternativo para mover la raíz nvm. haga nvm root C:\nvm antes de instalar el nuevo nodo.
Es posible que también deba copiar archivos adicionales a la nueva raíz.
si ya está instalado, entonces:

nvm uninstall 8.x.x
nvm root C:\nvm
copy /Y %APPDATA%\nvm\* C:\nvm
nvm install 8.x.x

Experimenté el mismo problema (Error: No se puede encontrar el módulo 'semver').

Algunos consejos para empezar:

La comparación de archivos (utilizando un archivo zip oficial) mostró que, de hecho, faltan archivos y carpetas> 4k en node_modules\npm . Parece que se canceló la descompresión. Verificado para v8.9.1 y v8.9.4: faltan todos los node_modules alfabéticamente detrás de libnpx . No me sorprendería si se relaciona con esa estructura de carpetas ridículamente anidada: ...\nvm\v8.9.4\node_modules\npm\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\

Tomé el maestro actual de nvm-windows, agregué información de depuración a la función de instalación dentro de nvm.go , lo compilé (con Go 1.10 win x64) e intercambié el nvm.exe por el nuevo. Resultado:

  • El archivo zip npm que se descarga en el directorio temporal _es_ de hecho es el oficial. ( @benavern , @Akamaozu )
  • El archivo zip se extrajo completamente dentro del directorio temporal y se movió a la carpeta específica de la versión. No faltan archivos.

Ahora, para la parte sorprendente, cuando intenté encontrar la regresión:

  • Verificó la etiqueta 1.1.6, compilada (sin cambios), reemplazó nvm.exe con la nueva, eliminó v8.9.4, ejecutó nvm install 8.9.4 => exitoso, no faltan archivos
  • Verificó la etiqueta 1.1.5, compilada (sin cambios), reemplazó nvm.exe por la nueva, eliminó v8.9.4, ejecutó nvm install 8.9.4 => exitoso, no faltan archivos
  • Se reemplazó nvm.exe con el original de la configuración oficial de nvm-windows (1.1.5), se eliminó v8.9.4, se ejecutó nvm install 8.9.4 => aún error , faltan archivos.

Me parece que hay un problema con el proceso de compilación y / o el entorno.

Sería genial si alguien más pudiera intentar si recrear el nvm.exe a través de build.bat o go build src/nvm.go resuelve el problema para él / ella.

HTH, carcasa de código

Eliminar la carpeta npm de la carpeta de abajo
C: \ Usersusername \ AppData \ Roamingnpm
after => npm install
¡Esta trabajando bien para mi!....

Me encontré con este problema hoy y funcionó para mí.
1) Abra una terminal bash
2) CD en C: \ Usersusername \ AppData \ Roamingnpm \ node_modules \
3) debería ver un package.json
4) instalación de hilo

@codeshell Gracias por su análisis. Encontré que el problema se debe a las rutas largas que no son compatibles con Windows. Para mí, incluso después de descargar el archivo zip npm y reemplazar el contenido de C: \ Users \ yourname \ AppData \ Roamingnvm \ 9.11.1npm, recibí el error. De hecho, no pude copiar todos los archivos del archivo zip npm descargado debido a los nombres largos.

Para evitar esto, desinstalé la versión 9.11.1 del nodo y luego desinstalé nvm. Nvm reinstalado en C: nvm. Ahora mi 'nvm install 9.11.1' normal funciona bien y 'npm' también está en buen estado, confirmado ejecutando 'npm -v'.

Sé que esta es una solución bastante drástica, pero solo necesito hacerlo una vez.

Seguí estos pasos y resolvió mi problema.

  1. desinstalar Node.js
  2. Eliminar el contenido de las siguientes carpetas
    C: \ Usuarios \\ AppData \ Roamingnpm-cache
    C: \ Usuarios \\ AppData \ Roamingnpm
    C: \ Archivos de programa \ nodejs
  3. Luego, vuelva a instalar Node _ https://nodejs.org/en/_

instalar el nodo a través de nvm 1.6.0 funcionó para mí

En mi caso, los caminos eran demasiado largos. Elegí c: nvm como administrador de versiones del directorio de instalación y c: \ nodejs para el directorio de enlace simbólico. Eso pareció resolver el problema para mí.

Tuve el mismo problema con el nodo v10.4.0 y la solución de roman-spiridonov funcionó para mí.

Ya había eliminado %AppData%\npm etc. antes de instalar nvm-windows.

Intenté poner en funcionamiento 10.4.1, pero al principio tuve problemas.

Lo puse en funcionamiento después de eliminar la carpeta de la ubicación de instalación manualmente e instalar a través de nvm nuevamente. No estoy seguro de si esta es una ruta demasiado larga (obviamente no) C:\Users\muser\AppData\Roaming\nvm\v10.4.1 .

El mismo problema con la solución v10.5.0 y roman-spiridonovs también funcionó para mí.

Tengo el mismo problema al instalar el último nodo v10.6.0, luego lo desinstalé y cambié a v8.11.3, problema resuelto.

También intenté descargar directamente el npm-v6.1.0.zip, tiene algunos errores al descomprimir.

Experimentó el mismo problema que @shadeofgod con 10.6.0. Cambiar a 8.11.3 lo solucionó.

El problema persiste con 10.6.0-64bit para una primera instalación completamente limpia. (sin nodo / npm antes). La solución roman-spiridonovs continúa funcionando (para mí, la carpeta npm ahora se puede encontrar en [...node]\node_modules\npm )

¿Por qué sigue siendo un problema después de casi todo un año?

Acabo de encontrar este problema en Windows 10.

Habilitar las rutas largas de Win32 solucionó el problema. Ver publicación de @apptaro (2018-02-15)

Después de habilitar rutas largas, reinicié Windows para que se aplicara el cambio.
También tuve que eliminar la instalación npm rota manualmente.

Después de eso, pude instalar npm nuevamente usando nvm .

Creo que nvm en Windows debería emitir advertencias si las rutas largas no están habilitadas. nvm install tampoco debería fallar silenciosamente.

Para mi:

  • nvm install 9.11.2 fue la última versión que encontré que funcionaba con nvm.
  • La sobrescritura con el archivo zip del sitio web funciona en cualquier versión.
  • La solución de rutas largas no pareció funcionar (aunque no creo que haya intentado reiniciar la máquina después de cambiar la configuración del registro).

Este es el script de PowerShell que usamos para los principiantes. Con suerte, después de un reinicio, la idea es poder actualizar a una versión posterior.

# Get Chocolatey which is required for the rest of this script
iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
choco feature enable -n=allowGlobalConfirmation
choco upgrade chocolatey

choco upgrade nvm
$env:NVM_HOME = [System.Environment]::ExpandEnvironmentVariables([System.Environment]::GetEnvironmentVariable("NVM_HOME","Machine"))
$env:NVM_SYMLINK = [System.Environment]::ExpandEnvironmentVariables([System.Environment]::GetEnvironmentVariable("NVM_SYMLINK","Machine"))
$env:Path = [System.Environment]::ExpandEnvironmentVariables([System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User"))

# Enable long paths in windows - may avoid npm issue https://github.com/coreybutler/nvm-windows/issues/302
New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem' -Name 'LongPathsEnabled' -Value 1 -PropertyType DWORD -Force | Out-Null
New-ItemProperty -Path 'HKLM:\SYSTEM\ControlSet001\Control\FileSystem' -Name 'LongPathsEnabled' -Value 1 -PropertyType DWORD -Force | Out-Null

nvm install 9.11.2
nvm use 9.11.2

No estoy seguro de qué decirte ... Puedo instalar semver muy bien con la misma configuración.

image

Creo que ejecutar "npm install" resolvería el problema, como lo hizo conmigo;)

Creo que @momochanmo se había olvidado de instalar el paquete semver en su proyecto. Tiene el mismo mensaje de error, pero este es un problema totalmente diferente.

En resumen: este hilo trata sobre el hecho de que nvm instala una versión dañada de npm con una versión del paquete semver que falta o está dañada, lo que lo vuelve inoperable.

La causa raíz más probable sugerida hasta ahora es que un error / cambio de comportamiento introducido en el compilador Go hace unos 3 años provoca un error que se ingiere silenciosamente durante la instalación. Consulte https://github.com/coreybutler/nvm-windows/pull/370.

Entonces, si conoces a alguien que trabaja con Windows y está entusiasmado con Go, ahora es un buen momento para darle una palmada en el hombro y ofrecerle esta excelente oportunidad de desarrollo profesional 😅

Seguí estos pasos y resolvió mi problema.

  1. desinstalar Node.js
  2. Eliminar el contenido de las siguientes carpetas
    C: \ Usuarios\ AppData \ Roamingnpm-cache
    C: \ Usuarios\ AppData \ Roamingnpm
    C: \ Archivos de programa \ nodejs
  3. Luego, vuelva a instalar Node _ https://nodejs.org/en/_

Seguir esto funcionó para mí. ¡¡¡¡¡Eres un salvavidas!!!!! gracias <3

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