Nvm-windows: nvm installe le nœud mais ne parvient pas à fournir npm

Créé le 3 juil. 2019  ·  47Commentaires  ·  Source: coreybutler/nvm-windows

Mon environnement

  • [x] Windows 10

J'utilise la version NVM4W :

  • [x] 1.1.7

J'ai déjà...

  • [x] lisez le README pour être au courant des pièges npm et des problèmes d'antivirus.
  • [x] a consulté le wiki pour s'assurer que mon problème n'a pas déjà été résolu.
  • [x] vérifié 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 l'utilisation de NVM pour Windows, car gitter est utilisé pour les questions et les commentaires.

Mon problème concerne (cochez uniquement ceux qui s'appliquent) :

  • [ ] paramètres.txt
  • Prise en charge du proxy [ ] (Avez-vous essayé la version 1.1.0+ ?)
  • [ ] Support 32 ou 64 bits (Avez-vous essayé la version 1.1.3+ ?)
  • [ ] Caractère d'échappement (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

Après avoir exécuté nvm install latest , cette version de nœud 12.5.0 et la version npm v6.9.0 sont installées.

Comportement réel

Après la commande d'installation, aucune erreur ne s'affiche :

2019-07-03_09h10_55

le problème suivant se produit :

2019-07-03_09h11_08

Le dossier node_modules/ est vide :

2019-07-03_09h32_34

Étapes pour reproduire le problème :

Installez simplement une version et vérifiez ce qui se passe. Je ne sais pas exactement comment cela fonctionne, mais cela semble être lié au nouveau changement d'URL du projet npm/cli.

Commentaire le plus utile

Avoir le même problème. Ceci est ma tentative et fonctionne pour moi:

  1. téléchargez la version du nœud nécessaire à partir de https://nodejs.org/en/download/releases/ au format zip (ou autre format)
  2. Supprimez le répertoire node_modules s'il existe déjà dans version drectory situé dans le répertoire d'installation de nvm (par exemple, C:UsersUSER_NAMEAppDataRoamingnvmv8.11.4).
  3. décompressez le fichier de l'étape 1 et copiez le répertoire node_modules dans version directory déduit à l'étape précédente.
  4. npm fonctionne

Tous les 47 commentaires

Êtes-vous sûr à 100 % que vous utilisez la version 1.1.7 ? Je demande parce que le changement npm/cli était un problème d'URL codé en dur qui existait dans 1.1.6 et a été corrigé dans 1.1.7.

malheureusement, 100% certain @coreybutler
hahaha

voici ma capture d'écran de la version:

2019-07-03_13h33_44

Un de mes amis vient d'installer nvm 1.1.7 sur sa machine et j'ai également mis à jour la mienne pour obtenir la dernière version de npm, sans succès malheureusement

Désolé, j'ai dû demander :-)

Je ne peux pas recréer ça.

image

En règle générale, cela se résume à a) des autorisations, b) un problème de réseau lors du téléchargement. Parfois, le problème de réseau se situe sur le serveur distant, en particulier lorsqu'une toute nouvelle version de node/npm a été poussée. Ce message d'erreur apparaît tout le temps, mais pour de nombreuses raisons différentes, ce qui rend difficile l'identification de la véritable source du problème.

Pour reproduire ce problème, j'ai dû désinstaller Node et NPM et effectuer une nouvelle installation en utilisant uniquement NVM, puis j'obtiens l'erreur.

pwrshell-nvm-install-latest

J'ai remarqué que pendant le processus d'installation, les éléments liés à NPM sont téléchargés dans un dossier temporaire, mais plus tard, ils ne sont jamais déplacés et le dossier temporaire est supprimé.
Même en exécutant powershell en tant qu'administrateur, je ne pense donc pas que ce soit lié à l'autorisation.

Pendant l'installation :
during-install

Après l'installation :
after-install

@gsicoli Vous avez raison de télécharger npm dans un répertoire temporaire, puis de le déplacer. Si l'opération de déplacement échoue silencieusement, cela entraînerait la suppression du répertoire sans déplacer npm là où il doit être (c'est-à-dire ce comportement).

Êtes-vous invité lorsque vous exécutez nvm use ou nvm install ? L'exécution en tant qu'administrateur ne signifie pas nécessairement que le compte dispose d'autorisations élevées. En règle générale, Windows vous invite à élever les autorisations. Pour un compte administrateur, il est automatiquement accordé, mais l'utilisateur doit toujours dire "OK".

Il demande quand je ne cours pas en tant qu'administrateur. Si je cours en tant qu'administrateur, cela ne demande rien... Néanmoins, l'effet est le même.

Face au même problème sur Windows 10. Si je peux fournir des informations, je serai heureux de vous aider !

Il ne semble cependant pas être lié à une certaine version de node; le dossier node_modules est toujours vide pour les versions que je tente d'installer. Je suis invité à des autorisations élevées.

Avoir le même problème. Y at-il un travail autour?

Avoir le même problème. Ceci est ma tentative et fonctionne pour moi:

  1. téléchargez la version du nœud nécessaire à partir de https://nodejs.org/en/download/releases/ au format zip (ou autre format)
  2. Supprimez le répertoire node_modules s'il existe déjà dans version drectory situé dans le répertoire d'installation de nvm (par exemple, C:UsersUSER_NAMEAppDataRoamingnvmv8.11.4).
  3. décompressez le fichier de l'étape 1 et copiez le répertoire node_modules dans version directory déduit à l'étape précédente.
  4. npm fonctionne

Avoir le même problème. J'ai donc appliqué la solution de contournement de @liuwenzhuang. En effet, maintenant npm fonctionne bien. Cependant, j'obtiens l'erreur suivante sur npm up -g
62166164-56513a00-b320-11e9-8728-4d0cfeb758a9

La désactivation de McAfee et l'exécution de l'installation à partir de la console d'administration ont résolu ce problème pour moi.

@helzgate : Cela n'a aucun sens pour moi. Mes journaux de virus ne montrent exactement rien.
Pouvez-vous fournir un journal de votre activité McAfee ?

Je peux le confirmer. Avec mcafee activé, npm est décompressé mais le déplacement échoue sans aucune erreur. Les journaux McAfee n'affichent rien du tout. La désactivation de McAfee lors de l'installation résout le problème.
@coreybutler Je sais que ce n'est pas une bonne solution, mais apparemment la décompression fonctionne donc serait-il possible de décompresser directement dans le dossier nodes_module/npm au lieu de décompresser vers temp et de se déplacer ?

Je rencontre le même problème, mais cela ne semble se produire qu'avec l'installation du nœud 6 (ou parce que j'ai installé le nœud 6 après avoir fait nvm install latest ?). L'installation de NPM se bloque indéfiniment et je rencontre la même erreur npm-cli que celle indiquée ci-dessus.

J'ai installé McAfee Endpoint Security, mais comme il s'agit d'un PC géré dans un bureau, il n'y a aucun moyen de le désactiver pour voir si c'est le problème. NPM continue de se bloquer après 10 minutes d'entrée dans le processus d'installation. N'y a-t-il pas un moyen de modifier NVM pour au moins détecter les blocages ou qu'un processus ne se termine pas comme prévu ?

Attention, ce commentaire fonctionne parfaitement ! Ce serait formidable si c'est ce que le programme d'installation nvm a fait.

@matthew-dean Pareil ici avec McAfee. Bien qu'ils n'aient pas correctement défini mes autorisations, je peux donc les désactiver. Je verrai si c'est la cause du problème demain quand je serai de retour au travail. Je ne serais pas surpris; le programme d'installation du package de dart a signalé un problème similaire lors de l'installation d'un package (qui a également fonctionné en téléchargeant vers temp puis en se déplaçant ailleurs).

Oui, c'est bien le problème pour moi ! McAfee Endpoint Security empêche silencieusement certaines opérations.

Installation de n'importe quelle version avec McAfee actif => pas de npm
Installation de n'importe quelle version avec McAfee désactivé => npm est inclus et fonctionne correctement

L'erreur mentionnée ci- dessus , lors de l'exécution npm update -g , est-elle également liée à McAfee ? Ou est-ce un effet secondaire de la solution de contournement ?

Ne pense pas. Cela n'a rien changé pour moi si j'ai désactivé McAfee ou non. Notez également qu'il existe déjà deux problèmes sur ce sujet ( un plus long et un plus court avec un script qui vous permet de toujours mettre à jour npm semble-t-il (je ne l'ai pas testé mais il a plus de 30 pouces vers le haut)

Merci! Suite à une version améliorée de ce script pour bash . (Vous devrez peut-être ajuster l'emplacement nodejs .) Ajoutez-le à votre ~/.bashrc et exécutez npmup dans un nouveau bash. Ou, exécutez directement les commandes du corps de la fonction à la fois. Cette version fait en fait une mise à jour, au lieu d'une (ré-)installation à chaque fois.

function npmup {
  pushd /c/Program\ Files/nodejs > /dev/null
  mv npm npm2
  mv npm.cmd npm2.cmd
  mv npx npx2
  mv npx.cmd npx2.cmd
  node node_modules/npm/bin/npm-cli.js up npm -g
  mv -n npm2 npm
  mv -n npm2.cmd npm.cmd
  mv -n npx2 npx
  mv -n npx2.cmd npx.cmd
  rm -f npm2 npm2.cmd npx2 npx2.cmd
  popd > /dev/null
}

Le commentaire auquel je faisais référence a depuis été supprimé, désolé pour la confusion.

En utilisant 1.1.7, je rencontrais le même problème avec NPM non copié à partir du dossier "temp", lors d'une nouvelle installation de Node.js + NPM à l'aide de NVM. Étant donné que j'utilise une machine de l'entreprise, je ne peux pas tester avec McAfee Endpoint Security désactivé.

Cependant, j'ai construit NVM à partir de "maître" aujourd'hui et j'ai vérifié qu'il est capable de s'installer correctement à partir de zéro sans problème.

Notez que ce problème n'est pas _juste_ l'échec de l'installation de NPM, mais l'utilitaire de ligne de commande NVM ne parvient pas non plus à _reconnaître_ que NPM n'a pas été installé. IMO, le programme d'installation ne fait pas une étape nécessaire pour vérifier que le répertoire est présent, ce qui éviterait une certaine confusion autour de ce problème.

@hind3nbug Pareil pour moi, McAfee Endpoint Security n'est pas désactivable sur une machine d'entreprise, il doit donc toujours y avoir un moyen approprié d'installer NPM. Il devrait y avoir un moyen de le faire.

En utilisant 1.1.7, je rencontrais le même problème avec NPM non copié à partir du dossier "temp", lors d'une nouvelle installation de Node.js + NPM à l'aide de NVM. Étant donné que j'utilise une machine de l'entreprise, je ne peux pas tester avec McAfee Endpoint Security désactivé.

Cependant, j'ai construit NVM à partir de "maître" aujourd'hui et j'ai vérifié qu'il est capable de s'installer correctement à partir de zéro sans problème.

Peux-tu partager ta version ? Je ne suis pas capable de construire nvm à partir du code source :(

@hind3nbug & @coreybutler... alors ce problème a-t-il été résolu ? mais pas publié la nouvelle version nvm? quand une nouvelle version est estimée?

J'avais installé Nodist avant nvm-windows. Il a laissé un fichier .npmrc sous le répertoire personnel ( %userprofile% ). J'ai dû le supprimer et réessayer la commande nvm use pour que tout soit correct.

Si cela m'était arrivé aujourd'hui - désinstaller la version puis la réinstaller semblait résoudre le problème.

J'obtenais un échec silencieux pour l'installation de npm.

J'ai pensé qu'il pourrait s'agir du scanner de virus Windows, alors j'ai désactivé cela :
image

Étrangement maintenant l'échec n'est pas silencieux :

$ nvm install 12.12.0
Downloading node.js version 12.12.0 (64-bit)...
Complete
Creating C:\ProgramData\nvm\temp

Downloading npm version 6.11.3... Download failed. Rolling Back.
Rollback failed. remove C:\ProgramData\nvm\temp\npm-v6.11.3.zip: The process cannot access the file because it is being used by another process.
Could not download npm for node v12.12.0.
Please visit https://github.com/npm/npm/releases/tag/v6.11.3 to download npm.
It should be extracted to C:\ProgramData\nvm\v12.12.0

Avez-vous exécuté nvm on après l'installation ?

Dois-je le faire à chaque fois que j'installe une nouvelle version de Node.js ?

J'utilise nvm depuis quelques années et je n'ai jamais eu à faire nvm on auparavant.

J'ai décidé de fermer ce sujet car cela commence à toucher à un certain nombre d'autres problèmes. Tenons-nous en à un problème par thread. Ouvrez un nouveau sujet si votre problème n'est pas résolu.

Je vais essayer de résumer d'après ce que j'ai lu :

1) npm sera installé par nvm. Si vous voyez l'ancien chemin (npm/npm), vous devez mettre à niveau NVM4W vers 1.1.7. Si vous ne disposez pas des autorisations appropriées, cela échouera. C'est la nature et l'intention de Windows et la raison pour laquelle les invites UAC existent.
2) Votre antivirus peut empêcher NVM4W de déplacer les fichiers de npm du répertoire temporaire vers son emplacement final. Désactivez-le ou faites une exception. Voir point #3.
3) NVM4W a été soumis à tous les principaux fournisseurs d'antivirus et passe (en théorie). Toutefois; les logiciels antivirus changent constamment de définitions, ce qui rend cela difficile à suivre. Certains AV hors marque fondent leurs définitions sur des connaissances très obsolètes, le plus difficile étant que certains bloquent entièrement les programmes. Il y a quelques années, il y a eu un faux positif dans l'environnement d'exécution de Go. Il y a longtemps que le patch a été corrigé et NVM4W n'a jamais souffert de l'exploit de toute façon... mais certaines sociétés audiovisuelles bloquent l'intégralité de la signature du langage Go.
4) Honnêtement, je n'éteins et ne rallume jamais nvm. Vous ne devriez pas vraiment avoir à le faire, mais il est conçu pour vous aider à tester votre système.

Avoir le même problème. Ceci est ma tentative et fonctionne pour moi:

  1. téléchargez la version du nœud nécessaire à partir de https://nodejs.org/en/download/releases/ au format zip (ou autre format)
  2. Supprimez le répertoire node_modules s'il existe déjà dans version drectory situé dans le répertoire d'installation de nvm (par exemple, C:UsersUSER_NAMEAppDataRoamingnvmv8.11.4).
  3. décompressez le fichier de l'étape 1 et copiez le répertoire node_modules dans version directory déduit à l'étape précédente.
  4. npm fonctionne

J'ai tout essayé pendant deux jours... nvm, réinstallation de nœuds, redémarrages, changements de PATH, et c'est la seule chose qui a vraiment fonctionné comme un charme !

@coreybutler puis-je suggérer d'ajouter la suggestion de @liuwenzhuang à readme.md ou Common-Issues ?

Cela peut faire gagner du temps à quelqu'un.

Bonjour, c'est mon cas, ce message dans la console m'a donné l'indice de l'erreur :

Veuillez visiter https://github.com/npm/npm/releases/tag/v6.14.4 pour télécharger npm.

Aller à la page https://github.com/npm/npm/ montre que le référentiel a été déplacé et se trouve maintenant sur https://github.com/npm/cli. Autrement dit, vous devrez rechercher la v6.14.4 dans ledit référentiel.

J'ai également rencontré le même problème sur Windows 10. Et cela peut être résolu en désactivant la protection McAffe.

Ouvrez McAffe Endpoint Security > Threat Prevntion > Désactiver la protection d'accès et le module d'analyse à l'accès (décochez)
exécuter> version d'installation de nvm

@coreybutler : Je pense que vous devriez fournir une notification relative si npm n'est pas installé correctement.

Avoir le même problème. Ceci est ma tentative et fonctionne pour moi:

  1. téléchargez la version du nœud nécessaire à partir de https://nodejs.org/en/download/releases/ au format zip (ou autre format)
  2. Supprimez le répertoire node_modules s'il existe déjà dans version drectory situé dans le répertoire d'installation de nvm (par exemple, C:UsersUSER_NAMEAppDataRoamingnvmv8.11.4).
  3. décompressez le fichier de l'étape 1 et copiez le répertoire node_modules dans version directory déduit à l'étape précédente.
  4. npm fonctionne

Merci @liuwenzhuang Votre commentaire m'a vraiment aidé aujourd'hui. Je me bats avec ce bug depuis quelques jours maintenant

Pourquoi les gens téléchargent-ils le nœud du site Web pour l'utiliser avec nvm, n'est-ce pas à cela que nvm est censé servir? 😉 vous pouvez aussi bien ne pas utiliser nvm du tout.

J'avais un lien symbolique fantôme que nvm avait créé précédemment qu'il ne pouvait pas supprimer à cause des autorisations du shell. Je suppose que c'est parce que j'utilise nvm dans git bash shell en tant qu'utilisateur non élevé.

Je l'ai supprimé dans l'invite de commande de l'administrateur :

del /f c:\Program Files\nodejs

Ensuite, j'ai créé un nouveau lien symbolique vers une version que j'avais téléchargée à l'aide de nvm :

mklink /j "C:\Program Files\nodejs" "C:\Users\USER_NAME\AppData\Roaming\nvm\NODE_VERSION"

Je n'ai pas essayé nvm use NODE_VERSION mais il y a de fortes chances que si vous supprimez le lien symbolique avant de l'invoquer, le lien sera créé pour vous (je suppose que c'est le comportement attendu). Il faudrait très probablement utiliser quelque chose comme ceci : https://github.com/imachug/win-sudo

Avoir le même problème. Ceci est ma tentative et fonctionne pour moi:

  1. téléchargez la version du nœud nécessaire à partir de https://nodejs.org/en/download/releases/ au format zip (ou autre format)
  2. Supprimez le répertoire node_modules s'il existe déjà dans version drectory situé dans le répertoire d'installation de nvm (par exemple, C:UsersUSER_NAMEAppDataRoamingnvmv8.11.4).
  3. décompressez le fichier de l'étape 1 et copiez le répertoire node_modules dans version directory déduit à l'étape précédente.
  4. npm fonctionne

Cela a fonctionné !!!

J'ai également eu le même problème avec McAfee + Win 10 + PowerShell. - Merci beaucoup @liuwenzhuang

Je ne sais pas pourquoi cela a été fermé, mais j'ai le même problème, une nouvelle installation de Windows 10, une nouvelle installation de nvm, pas d'antivirus (sauf intégré). Le correctif officiel n'est pas de contourner la raison même pour laquelle j'utilise nvm, n'est-ce pas ?

Ce commentaire fonctionne pour moi : https://github.com/coreybutler/nvm-windows/issues/475#issuecomment -538475058

Juste en train de faire nvm on ... Je pensais que c'était "on" directement après l'installation 😄

Lorsque la version de votre npm local est la plus récente, il est possible qu'elle n'installe pas la même version de npm lors de l'installation du dernier nœud, cela se produira-t-il ?

Une de mes machines de bureau a McAfee et je pense qu'il s'arrête pour installer (copier) le dossier npm. Mais l'étape ci-dessous vient comme un sauvetage pour moi. Merci.

Avoir le même problème. Ceci est ma tentative et fonctionne pour moi:

  1. téléchargez la version du nœud nécessaire à partir de https://nodejs.org/en/download/releases/ au format zip (ou autre format)
  2. Supprimez le répertoire node_modules s'il existe déjà dans version directory situé dans le répertoire d'installation de nvm (par exemple, C:UsersUSER_NAMEAppDataRoamingnvmv8.11.4).
  3. décompressez le fichier de l'étape 1 et copiez le répertoire node_modules dans version directory déduit à l'étape précédente.
  4. npm fonctionne

Cela fonctionne de moi, comme un charme !!

Je pense que l'ajout d'une étape de test pour confirmer l'installation réussie de toute version de nodejs à nvm-windows sera très utile pour gagner du temps. Si cela échoue, fournissez des informations probables pour le résoudre.

@coreybutler pensé?

Merci.

@Amitesh - Je pense que les contrôles d'intégrité sont une bonne idée. Toutefois; Je n'ai pas le temps de le faire en ce moment (voir l'onglet discussion, premier post). J'accepterais un PR si quelqu'un voulait ajouter ceci.

Je suis toujours confronté à un problème npm non reconnu sur Windows 10 pour le nœud nouvellement installé (10.23.0) à l'aide de nvm (1.1.7)
J'ai suivi les étapes ci-dessous mais ça ne sert à rien

téléchargez la version du nœud nécessaire à partir de https://nodejs.org/en/download/releases/ au format zip (ou autre format)
Supprimez le répertoire node_modules s'il existe déjà dans le répertoire de version situé dans le répertoire d'installation de nvm (par exemple, C:UsersUSER_NAMEAppDataRoamingnvmv8.11.4).
décompressez le fichier de l'étape 1 et copiez le répertoire node_modules dans le répertoire de version déduit à l'étape précédente.
npm fonctionne
quelqu'un peut-il me guider pour que cela fonctionne :( @coreybutler une aide s'il vous plaît?
nvmerror
nvm npm _10 23 0

Je viens de trouver une solution de contournement en consultant les commentaires liés à la protection antivirus.

Je suis sous Windows 10, 64 bits, version 1909 (build 18363.1139)

  1. Dans le menu Démarrer, ouvrez l'application de sécurité Windows .
  2. Cliquez sur la vignette Protection contre les virus et les menaces .
  3. Dans l'interface affichée, choisissez Gérer les paramètres qui se trouve sous "Paramètres de protection contre les virus et les menaces"
  4. Désactiver la protection en temps réel
  5. Dans le menu Démarrer, recherchez Invite de commandes , cliquez avec le bouton droit de la souris et "Exécuter en tant qu'administrateur"
  6. exécutez nvm install avec la version que vous souhaitez installer. npm s'installera correctement maintenant. Vérifier avec nvm utiliser avec la version, puis node -v et npm -v
  7. Revenez à l'application Windows Security et réactivez la protection en temps réel
Cette page vous a été utile?
0 / 5 - 0 notes