Nvm-windows: npm échoue: "Impossible de trouver le module 'semver' (nœud v8.4.0)

Créé le 15 sept. 2017  ·  39Commentaires  ·  Source: coreybutler/nvm-windows

S'il s'agit d'une question sur l'utilisation de NVM4W, veuillez plutôt utiliser stackoverflow .

S'il s'agit d'un problème d'antivirus, assurez-vous de rechercher d'abord les problèmes existants.

Mon environnement

  • [] Windows 7 ou inférieur (pas vraiment pris en charge en raison de EOL - voir wiki pour plus de détails)
  • [ ] Windows 8
  • [ ] Windows 8.1
  • [X] Windows 10
  • [] Windows 10 IoT Core
  • [] Windows Server 2012
  • [] Windows Server 2012 R2
  • [] Windows Server 2016

  • [] Mon installation Windows n'est pas en anglais.

J'utilise la version NVM4W:

  • [] 1.1.6
  • [X] 1.1.5
  • [] 1.1.4
  • [] 1.1.3
  • [] 1.1.2
  • [] 1.1.1
  • [ ] Plus âgée
  • [ ] Autre (veuillez préciser)

J'ai déjà...

  • [X] lisez le README pour être au courant des problèmes de npm et d'antivirus.
  • [X] a examiné le wiki pour s'assurer que mon problème n'a pas déjà été résolu.
  • [X] a vérifié que j'utilise un compte avec des privilèges administratifs.
  • [X] a recherché les problèmes (ouverts et fermés) pour s'assurer qu'il ne s'agissait pas d'un doublon.
  • [X] s'est assuré qu'il ne s'agissait pas d'une question sur la façon d'utiliser NVM pour Windows, puisque

Mon problème est lié à (cochez uniquement ceux qui s'appliquent):

  • [] settings.txt
  • [] support proxy (avez-vous essayé la version 1.1.0+?)
  • [] Prise en charge 32 ou 64 bits (Avez-vous essayé la version 1.1.3+?)
  • [] Caractère qui s'échappe (Avez-vous essayé la version 1.1.6+?)
  • [X] Un environnement shell standard (terminal / powershell)
  • [] Un environnement shell non standard (Cmder, Hyper, Cygwin, git)

Comportement prévisible

Renvoie le numéro de version correct.

Comportement réel

module.js: 491
jeter err;
^

Erreur: impossible de trouver le module 'semver'
à Function.Module._resolveFilename (module.js: 489: 15)
à Function.Module._load (module.js: 439: 25)
à Module.require (module.js: 517: 17)
à require (internal / module.js: 11: 18)
à Object.(C: \ Users \ leofu \ AppData \ Roaming \ nvm \ nvm \ v8.4.0 \ node_modules \ npm \ lib \ utils \ unsupported.js: 2: 14)
à Module._compile (module.js: 573: 30)
à Object.Module._extensions..js (module.js: 584: 10)
à Module.load (module.js: 507: 32)
à tryModuleLoad (module.js: 470: 12)
à Function.Module._load (module.js: 462: 3)
module.js: 491
jeter err;
^

Erreur: impossible de trouver le module 'semver'
à Function.Module._resolveFilename (module.js: 489: 15)
à Function.Module._load (module.js: 439: 25)
à Module.require (module.js: 517: 17)
à require (internal / module.js: 11: 18)
à Object.(C: \ Users \ leofu \ AppData \ Roaming \ nvm \ nvm \ v8.4.0 \ node_modules \ npm \ lib \ utils \ unsupported.js: 2: 14)
à Module._compile (module.js: 573: 30)
à Object.Module._extensions..js (module.js: 584: 10)
à Module.load (module.js: 507: 32)
à tryModuleLoad (module.js: 470: 12)
à Function.Module._load (module.js: 462: 3)

Étapes pour reproduire le problème:

nvm installer 8.4.0
nvm utilise 8.4.0
npm -v

help wanted

Commentaire le plus utile

Idem sur le dernier 8.8.1.
Je ne sais pas comment résoudre ce problème via NVM, car ce que SO suggère une réinstallation propre du nœud. Étant donné la nature des installations nvm, vous ne savez pas comment répliquer ces étapes. Donc, la seule façon d'utiliser le nœud v8 est de ne pas utiliser NVM?
https://stackoverflow.com/questions/33870520/npm-install-cannot-find-module-semver

solution de contournement

  1. nvm install 8.8.1 (ou une autre version de votre choix). N'y changez pas (encore).
  2. Téléchargez le * .zip de la même version de nœud depuis le site officiel (https://nodejs.org/en/download/current/)
  3. Remplacez le contenu de %APPDATA%/nvm/v8.8.1/npm par le dossier npm de l'archive téléchargée
  4. nvm use 8.8.1
  5. Prendre plaisir

Tous les 39 commentaires

Il s'agit d'une erreur npm, pas entièrement une erreur NVM. Je suggérerais de réinstaller le nœud 8.4.0 ...

@coreybutler Cela ne fonctionnera pas, n'arrête pas de désactiver, désinstaller, supprimer manuellement le dossier, réinstaller et réactiver. Même erreur.

J'ai même copié les dépendances node_modules de npm à partir d'une autre installation normale de travail du nœud 8.5.0 et ayant toujours des problèmes. Pourriez-vous y réfléchir davantage et voir quel est le problème?

Le nvm est un outil vraiment pratique mais qui ne fonctionne plus, et c'est dommage :(

Je ne sais pas quoi vous dire .... Je peux installer semver très bien avec la même configuration.

image

@coreybutler vient d'ouvrir un nouveau numéro avec les détails

Mon propre environnement et les étapes que j'ai utilisées pour reproduire le problème ici (duplicata fermé): # 305

Idem sur le dernier 8.8.1.
Je ne sais pas comment résoudre ce problème via NVM, car ce que SO suggère une réinstallation propre du nœud. Étant donné la nature des installations nvm, vous ne savez pas comment répliquer ces étapes. Donc, la seule façon d'utiliser le nœud v8 est de ne pas utiliser NVM?
https://stackoverflow.com/questions/33870520/npm-install-cannot-find-module-semver

solution de contournement

  1. nvm install 8.8.1 (ou une autre version de votre choix). N'y changez pas (encore).
  2. Téléchargez le * .zip de la même version de nœud depuis le site officiel (https://nodejs.org/en/download/current/)
  3. Remplacez le contenu de %APPDATA%/nvm/v8.8.1/npm par le dossier npm de l'archive téléchargée
  4. nvm use 8.8.1
  5. Prendre plaisir

merci @ roman-spiridonov vient de rencontrer le même bogue sur le nœud 8.8.1 installé via nvm sur Windows et votre solution de contournement semble faire le travail

Semble avoir également fonctionné en utilisant la dernière version de node (9.1.0).

semble npm qui est installé à partir de npm n'est pas compatible avec le nœud lui-même, vous devez télécharger le zip et remplacer le module npm comme @ roman-spiridonov suggéré

@coreybutler ne va-

Malheureusement, je ne peux pas exécuter npm i semver J'obtiens la même erreur.

@ roman-spiridonov Je ne trouve pas que "npm" soit un dossier, mais un fichier dans le fichier .zip téléchargé. Le remplacer par celui téléchargé ne semble pas résoudre les problèmes de semver pour moi (je sais que d'autres ont réussi)

J'ai le même problème.

La solution de contournement de @ roman-spiridonov fonctionne pour moi.

node 8.9.1
npm 5.5.1

@hyndsite vous devez regarder à l'intérieur du répertoire node_modules - à l'intérieur du répertoire npm . Utilisez cela et cela devrait fonctionner.

Merci @powellian j'ai trouvé cela hier et j'allais publier une nouvelle mise à jour du message @ roman-spiridonov - que le chemin correct est %APPDATA%/nvm/v8.8.1/node_modules/npm

Le fichier "npm" dans le chemin /nvm/vx.xx a contribué à semer la confusion.

Merci, cela fonctionne, mais maintenant je me demande pourquoi le package que nvm télécharge et celui que nous téléchargeons est différent?

Le même problème avec la solution de contournement 8.9.0 et @ roman-spiridonov a sauvé la mise.

Comme @benavern, je suis curieux de savoir pourquoi le package installé par nvm est différent de celui du dépôt officiel.

Idem sur le dernier 8.9.4.
L'erreur a été résolue en supprimant le répertoire 'C: \ Users \ yourname \ AppData \ Roamingnvm \ v *' et en ré-exécutant 'nvm install'.

Solution de contournement:

Si vous rencontrez ce problème et que vous utilisez Windows 10, activez les longs chemins à l'aide de l'Éditeur du Registre ou de l'Éditeur de stratégie de groupe local.

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

Mais pour moi, j'avais encore besoin de faire le contournement de @ roman-spiridonov. Cependant, je ne pouvais pas copier le dossier npm dans l'Explorateur, à la place, j'avais besoin d'utiliser 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

l'alternative pour déplacer la racine nvm. do nvm root C:\nvm avant d'installer un nouveau nœud.
peut également avoir besoin de copier des fichiers supplémentaires vers la nouvelle racine.
s'il est déjà installé, alors:

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

J'ai rencontré le même problème (Erreur: Impossible de trouver le module «semver»).

Quelques conseils pour vous aider:

La comparaison de fichiers (en utilisant le fichier zip officiel) a montré qu'il y avait en effet> 4k fichiers et dossiers manquants sous node_modules\npm . Il semble que la décompression soit interrompue. Vérifié pour v8.9.1 et v8.9.4: tous les node_modules par ordre alphabétique derrière libnpx sont manquants. Je ne serais pas surpris si cela se rapporte à ces structures de dossiers ridiculement imbriquées: ...\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\

J'ai pris le maître actuel de nvm-windows, ajouté des informations de débogage à la fonction d'installation dans nvm.go , compilé (avec Go 1.10 win x64) et échangé le nvm.exe avec le nouveau. Résultat:

  • Le fichier zip npm qui est téléchargé dans le répertoire temporaire _est_ en fait le @benavern , @Akamaozu )
  • Le fichier zip a été entièrement extrait dans le répertoire temporaire et déplacé vers le dossier spécifique à la version. Aucun fichier manquant.

Maintenant, pour la partie surprenante, alors que j'essayais de trouver la régression:

  • Extrait la balise 1.1.6, compilée (sans aucune modification), remplacé nvm.exe par le nouveau, supprimé v8.9.4, exécuté nvm install 8.9.4 => réussi, aucun fichier manquant
  • Extrait la balise 1.1.5, compilé (sans aucun changement), remplacé nvm.exe par le nouveau, supprimé v8.9.4, exécuté nvm install 8.9.4 => réussi, aucun fichier manquant
  • Remplacement de nvm.exe par celui d'origine de la configuration officielle de nvm-windows (1.1.5), suppression de la v8.9.4, exécution de nvm install 8.9.4 => erreur toujours, fichiers manquants.

Il me semble qu'il y a un problème avec le processus de construction et / ou l'environnement.

Ce serait formidable si quelqu'un d'autre pouvait essayer si recréer le nvm.exe via build.bat ou go build src/nvm.go résout également le problème pour lui / elle.

HTH, codage

Supprimer le dossier npm du dossier ci-dessous
C: \ Usersusername \ AppData \ Roamingnpm
après => npm installer
Ça marche bien pour moi! ....

Je viens de rencontrer ce problème aujourd'hui et cela a fonctionné pour moi.
1) Ouvrez un terminal bash
2) CD dans C: \ Usersusername \ AppData \ Roamingnpm \ node_modules \
3) devrait voir un package.json
4) installation de fil

@codeshell Merci pour votre analyse. J'ai trouvé que le problème était dû aux longs chemins qui ne sont pas pris en charge sous Windows. Pour moi, même après avoir téléchargé le fichier zip npm et remplacé le contenu de C: \ Users \ yourname \ AppData \ Roamingnvm \ 9.11.1npm, j'ai eu l'erreur. En fait, je ne pouvais pas copier tous les fichiers du fichier zip npm téléchargé en raison de noms longs.

Pour éviter cela, j'ai désinstallé la version 9.11.1 du nœud, puis désinstallé nvm. NVM réinstallé sur C: nvm. Maintenant, mon 'nvm install 9.11.1' normal fonctionne très bien et 'npm' est également en bon état confirmé en exécutant 'npm -v'.

Je sais que c'est une solution assez drastique, mais il suffit de le faire une fois.

J'ai suivi ces étapes et cela a résolu mon problème

  1. désinstaller Node.js
  2. Supprimer le contenu des dossiers suivants
    C: \ Utilisateurs \\ AppData \ Roamingnpm-cache
    C: \ Utilisateurs \\ AppData \ Roamingnpm
    C: \ Program Files \ nodejs
  3. Ensuite, installez à nouveau Node _ https://nodejs.org/en/_

l'installation du nœud via nvm 1.6.0 a fonctionné pour moi

Dans mon cas, les chemins étaient trop longs. J'ai choisi c: nvm comme gestionnaire de version du répertoire d'installation et c: \ nodejs pour le répertoire de lien symbolique. Cela a semblé résoudre le problème pour moi.

J'ai eu le même problème avec le nœud v10.4.0 et la solution de

J'avais déjà supprimé %AppData%\npm etc. avant d'installer nvm-windows.

J'ai essayé de faire fonctionner 10.4.1, j'ai eu des problèmes au début.

Je l'ai fait fonctionner après avoir supprimé manuellement le dossier de l'emplacement d'installation et réinstallé via nvm . Je ne sais pas si le chemin est trop long (évidemment pas) C:\Users\muser\AppData\Roaming\nvm\v10.4.1 .

Le même problème avec la v10.5.0 et la solution roman-spiridonovs a également fonctionné pour moi.

J'ai le même problème lors de l'installation du dernier nœud v10.6.0, puis je l'ai simplement désinstallé et je suis passé à la v8.11.3, problème résolu.

J'ai également essayé de télécharger directement le npm-v6.1.0.zip, il y a des erreurs lors de la décompression.

J'ai rencontré le même problème que

Le problème persiste avec 10.6.0-64bit pour une première installation propre et complète. (pas de nœud / npm avant). La solution roman-spiridonovs continue de fonctionner (pour moi, le dossier npm se trouve maintenant dans [...node]\node_modules\npm )

Pourquoi est-ce toujours un problème après presque une année entière?

Je viens de rencontrer ce problème sur Windows 10.

L'activation des chemins longs Win32 a résolu le problème. Voir l' article de @apptaro (2018-02-15)

Après avoir activé les longs chemins, j'ai redémarré Windows pour appliquer le changement.
J'ai également dû supprimer manuellement l'installation npm cassée.

Après cela, je pourrais réinstaller le npm en utilisant nvm .

Je pense que nvm sous Windows devrait émettre des avertissements si les chemins longs ne sont pas activés. nvm install ne devrait pas non plus échouer silencieusement.

Pour moi:

  • nvm install 9.11.2 était la dernière version que j'ai trouvée qui fonctionnait via nvm.
  • L'écrasement avec le fichier zip du site Web fonctionne sur n'importe quelle version.
  • Le correctif des longs chemins ne semble pas fonctionner (bien que je ne pense pas avoir essayé de redémarrer la machine après avoir modifié le paramètre de registre).

C'est le script PowerShell que nous utilisons pour les nouveaux démarreurs. Espérons qu'après un redémarrage, ils devraient pouvoir mettre à jour vers une version ultérieure est l'idée.

# 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

Je ne sais pas quoi vous dire .... Je peux installer semver très bien avec la même configuration.

image

Je pense qu'exécuter "npm install" résoudrait le problème, comme avec moi;)

Je crois que @momochanmo venait d'oublier d'installer le package semver dans leur projet. Il a le même message d'erreur, mais c'est un problème totalement différent.

Pour récapituler: Ce fil de discussion concerne le fait que nvm installe une version corrompue de npm avec une version manquante / corrompue du package semver, ce qui le rend inopérant.

La cause principale la plus probable suggérée jusqu'à présent est qu'un changement de bogue / comportement introduit dans le compilateur Go il y a environ 3 ans provoque une erreur qui est silencieusement avalée pendant l'installation. Voir https://github.com/coreybutler/nvm-windows/pull/370.

Donc, si vous connaissez quelqu'un qui travaille avec Windows et qui est enthousiasmé par Go, c'est le bon moment pour lui taper sur l'épaule et lui offrir cette excellente opportunité de développement de carrière 😅

J'ai suivi ces étapes et cela a résolu mon problème

  1. désinstaller Node.js
  2. Supprimer le contenu des dossiers suivants
    C: \ Utilisateurs\ AppData \ Roamingnpm-cache
    C: \ Utilisateurs\ AppData \ Roamingnpm
    C: \ Program Files \ nodejs
  3. Ensuite, installez à nouveau Node _ https://nodejs.org/en/_

Suivre cela a fonctionné pour moi. Tu es un sauveur!!!!! Merci <3

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

hsali picture hsali  ·  4Commentaires

eliavmaman picture eliavmaman  ·  6Commentaires

fredericrous picture fredericrous  ·  3Commentaires

janpio picture janpio  ·  3Commentaires

AllainPL picture AllainPL  ·  7Commentaires