web-dev-qa-db-fra.com

npm se bloque sur n'importe quelle commande

J'ai installé la dernière version de Node.js (12.2 fenêtres x64). Après avoir exécuté cmden tant qu'administrateur et essayé d'appeler une commande npm(sauf npm -v), la fenêtre cmd est suspendue. Après Ctrl+C il revient

Terminate batch job (Y/N)?

enter image description here

J'essayais de laisser cmd pendant plusieurs heures mais cela n'a pas donné de résultats. C'est étrange car le processus node.exe consomme assez de ressources processeur et mémoire.

J'essayais de réinstaller node.js plusieurs fois sans succès.
Je ne peux même pas obtenir certaines informations de débogage.

J'ai fait face à un tel problème sur mon VM que j'utilisais en me connectant via RDP. La même version installée sur mon ordinateur portable fonctionne bien. Sur mon VM, j'avais l'antivirus Kaspersky, mais après l'avoir éteint, j'ai obtenu le même résultat.

Quelqu'un at-il fait face à un tel problème? Y a-t-il un moyen d'obtenir plus de problème d'information? Pourriez-vous s'il vous plaît me recommander un moyen de résoudre?

14

J'ai finalement résolu mon problème. Selon la suggestion de notre dossier de lecture locale

Node.js (avec NPM) Remarque: sur les ordinateurs Windows Server, il est préférable d'installer les modules de nœud installés sur le chemin de l'utilisateur% APPDATA%, par un chemin d'accès global, par exemple c:\npm. Cela peut être réalisé par la commande npm: $ npm Le préfixe de jeu de configuration 'c:\npm' Ceci n'est pas requis sur la machine du développeur individuel.

J'ai exécuté npm config set prefix 'c:\npm'.

En conséquence, il a ajouté prefix="'c:\\npm'" à mon fichier .npmrc

Cela rend node.js vraiment fou. Il me faut environ une heure pour déboguer tous ces scripts js npm.jscode.js etc ... pour constater qu’il appelle mkdirp avec 'c:\\npm'\etc et que le processus en boucle est permanent. 

12

Si vous rencontrez ce problème à l'avenir, vous devez trouver le fichier npmrc le supprimer, ainsi que toutes les configurations de noeud, ainsi que supprimer et installer le noeud. Cela devrait résoudre ce problème. Lors de la suppression de certaines configurations du noeud ne sont pas supprimés, vous devez donc le supprimer manuellement.

4
illya yurkevich

Cela m'est aussi arrivé: j'ai installé le nœud uniquement pour mon utilisateur sous Windows 10 et j'ai réussi à utiliser npm en l'appelant à l'aide du chemin complet "c:\Program Files\nodejs\npm" 

J'ai résolu en utilisant "c:\Program Files\nodejs\npm" config set prefix "c:\Program Files\nodejs" (définir le préfixe sur le chemin d'accès complet à npm)

Et le résultat fut: 

    λ cat c:\Users\<my_user_name>\.npmrc
    prefix=c:\Program Files\nodejs

Maintenant tout fonctionne bien.

3
victorjtfranco

C'est si le préfixe n'est pas défini correctement. 

Je veux simplement signaler à ceux qui commentent -si vous ne pouvez pas accéder à npm en ligne de commande, vous ne pouvez évidemment pas exécuter npm config, évidemment. 

Ouvrez powershell et saisissez notepad $HOME/.npmrc, modifiez la ligne où il est écrit prefix=... et remplacez-la par une valeur valide. 

3
LameAnswersSuck

Pour plus de clarté, lorsque vous appelez:

npm config set prefix 'c:\npm'

vous devez avoir le 'enveloppant le chemin, mais vous devez les supprimer du fichier .npmrc pour que les commandes npm fonctionnent. Ainsi, votre ligne résultante dans le fichier .npmrc devrait ressembler à ceci:

prefix="c:\\npm"
0
corestruct00