npm-cli.js introuvable lors de l'exécution de npm

89

Habituellement, je peux installer une bibliothèque en utilisant npm, mais aujourd'hui, lors de l'installation de yeoman, j'ai rencontré ces erreurs. S'il vous plaît, aidez à comprendre quelle est la cause profonde.

D:\Works\phonegap\ionic\todo>npm install -g yo
    module.js:340
    throw err;
          ^
Error: Cannot find module 'C:\Program Files\nodejs\node_modules\npm\bin\node_modules\npm\bin\npm-cli.js'

at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:906:3

J'ai regardé dans le dossier:

C: \ Program Files \ nodejs \ node_modules \ npm \ bin \

mais ne voyez pas le dossier node_modules comme l'erreur décrite.

J'essaie aussi de trouver npm-cli.js et de voir qu'il est en fait dansC:\Program Files\nodejs\node_modules\npm\bin\

user1192476
la source
lorsque vous avez installé le nœud?
Mritunjay
1
Désolé, j'ai oublié d'avoir réinstallé le nœud pour corriger cette erreur, il n'y a donc pas de dossier node_modules maintenant. Mais avant cela, j'ai également vérifié C: \ Program Files \ nodejs \ node_modules \ npm \ bin \ node_mod ules \ mais je n'y ai pas vu le dossier npm.
user1192476
J'ai une réponse à cela. Publiera après 8 heures. Merci.
user1192476

Réponses:

104

Il s'avère que le problème est dû au mauvais chemin du nœud dans la variable système. Le chemin pointe actuellement vers

(Je ne sais vraiment pas quand je l'ai modifié)

C:\Program Files\nodejs\node_modules\npm\bin

alors je change pour

C:\Program Files\nodejs

et cela fonctionne comme un charme.

user1192476
la source
16
Avait le même problème. Je n'ai jamais changé le chemin, donc je suppose que cela a dû se produire lorsque j'ai mis à niveau Node.
Nils Magne Lunde
Je pense que pour moi, le problème a commencé à se produire lorsque j'ai installé Electron :(
Charles Walker
4
où avez-vous changé cela? quel fichier?
CodeToad du
1
Variables d'environnement.
Crozeta
Sur la dernière version, après la mise à niveau, vous pouvez voir les deux chemins sur vos variables d'environnement, et l'ancien (C: \ Users \ YOUR_USER \ AppData \ Roaming \ npm) a priorité sur le nouveau (C: \ Program Files \ nodejs ). La suppression du premier résout le problème pour moi.
Shahroq
41

Vous devez l'exécuter dans la ligne de commande.

SET PATH=C:\Program Files\Nodejs;%PATH%
Prathap Kudupu
la source
bash shell dans windows
Prathap Kudupu
J'ai eu ce problème lorsque j'ai mis à jour ma version de node. Votre solution a parfaitement fonctionné pour moi. Je n'ai eu à supprimer aucun node_modulesdossier
AllJs
Heureux que cela ait aidé
Prathap Kudupu
J'ai dû déplacer ce chemin plus haut pour lui donner une priorité plus élevée après avoir tenté de mettre à jour npm en utilisant npm (npm -i npm).
Corey Alix
26

Vous pouvez également avoir ce problème si dans votre chemin vous avez C:\Program Files\nodejset C:\Program Files\nodejs\node_modules\npm\bin. Retirer ce dernier du chemin

Peter Sun
la source
4
dans le chemin où?
CodeToad
17

Copiez le répertoire nommé à npmpartir du chemin du nœud installé (dans mon cas, le répertoire npm était disponible dans C:\Program Files\nodejs\node_modules).

Naviguez C:\Users\%USERNAME%\AppData\Roaming\npm\node_moduleset collez-y le npmrépertoire copié .

Cette méthode a fonctionné pour moi lorsque j'ai eu la même erreur. . .

Manoj
la source
3
Merci, cela a très bien fonctionné après une mise à niveau qui a gâché l'installation de NPM et la réparation et la réinstallation ne l'ont pas résolu.
Slbox du
16

Je viens de réparer mon installation NodeJS et cela a fonctionné pour moi!

Allez dans Control Panel\All Control Panel Items\Programs and Features-> recherchez NodeJSet choisissez l'option de réparation pour le réparer. J'espère que cela t'aides.

3AK
la source
1
Cela a fonctionné pour moi, mais ça s'appelle "applications et fonctionnalités" sur Windows 10.
PeonProgrammer
Il n'y avait pas de dossier npm dans node_modules dans mon cas et tout ce que j'ai fait était d'exécuter une commande npm install express, la réparer aidait.
Lalit Fauzdar
14

Ce n'est pas le même cas que dans la question, mais peut être utile pour quelqu'un confronté au même problème. Sous Windows, si vous appelez des npmcommandes à partir d'un outil CI / Automation, vous pouvez rencontrer l'erreur:

Error: Cannot find module 'SOME_PATH\node_modules\npm\bin\npm-cli.js'

SOME_PATHn'est pas Program Files/...mais un répertoire de projet à la place. Ainsi, npm essaie de trouver npm-cli.js dans le répertoire racine du projet au lieu de le rechercher Program Files/nodejs.

La raison est le script npm.cmd:

:: Created by npm, please don't edit manually.
@ECHO OFF

SETLOCAL

SET "NODE_EXE=%~dp0\node.exe"
IF NOT EXIST "%NODE_EXE%" (
  SET "NODE_EXE=node"
)


SET "NPM_CLI_JS=%~dp0\node_modules\npm\bin\npm-cli.js"
FOR /F "delims=" %%F IN ('CALL "%NODE_EXE%" "%NPM_CLI_JS%" prefix -g') DO (
  SET "NPM_PREFIX_NPM_CLI_JS=%%F\node_modules\npm\bin\npm-cli.js"
)
IF EXIST "%NPM_PREFIX_NPM_CLI_JS%" (
  SET "NPM_CLI_JS=%NPM_PREFIX_NPM_CLI_JS%"
)

"%NODE_EXE%" "%NPM_CLI_JS%" %*

Ce script utilise %~dp0pour rechercher le npm-cli.js, mais certains outils d'automatisation peuvent définir le répertoire de travail de la manière%~dp0 pointe vers le du projet local afin que le script ne fonctionne pas correctement.

Une solution possible pourrait être de modifier les appels npm à partir de ce

npm.cmd install

pour ça

cmd.exe /c npm.cmd install
admax
la source
Si vous devez configurer WorkingDirectory pour exécuter la commande d'installation dans un répertoire spécifique, cela ne résout pas le problème
Daniel Fisher lennybacon
Ce qui a fonctionné pour moi, c'est d'exécuter un répertoire de changement avec la commande npm par la suite: "cmd.exe" / c cd / d "T: \ TfsAgent_work \ 1 \ s \ src \ WebHost \" && "C: \ Program Files \ nodejs \ npm.cmd "install
Daniel Fisher lennybacon
7

Aucune des autres réponses n'a fonctionné pour moi.

Voici ce que j'écris (dans un shell git bash sous windows):

PATH="/c/Program Files/nodejs/:$PATH" npm run yeoman
edi9999
la source
5

Sur un Mac:

J'exécutais cela à partir du plug-in Maven com.github.eirslett Frontend lorsque j'ai eu la même erreur.

Finalement, j'ai dû:

Installez Node.js via le téléchargement du programme d'installation ici: http://nodejs.org/

Supprimez tous les dossiers node/et node_modules/de ma structure de construction maven.

RedYeti
la source
2
On dirait que cela a été corrigé avec les nouvelles versions du plugin frontend: github.com/eirslett/frontend-maven-plugin/issues/147
Noremac
5

En plus de ci-dessus, j'ai dû supprimer C:\Users\%USERNAME%\AppData\Roaming\npmégalement. Cela a aidé.

Romko
la source
1
Sur mon système, c'est là que résident les packages globaux; si vous le supprimez du chemin, vous ne pourrez peut-être plus exécuter gulp, etc.
TrueWill
5

J'ai rencontré le même problème avec le nœud 8.5 lors de l'installation avec nvm. La solution ci-dessous a fonctionné pour moi

$ nvm uninstall 8.5
8.5.0
Uninstalling node v8.5.0...Error removing node v8.5.0
Manually remove C:\Users\Omkar\AppData\Roaming\nvm\v8.5.0.

$ nvm install 8.5
8.5.0
Downloading node.js version 8.5.0 (64-bit)...
Complete
Creating C:\Users\Omkar\AppData\Roaming\nvm\temp

Downloading npm version 5.3.0... Complete
Installing npm v5.3.0...

Installation complete. If you want to use this version, type

nvm use 8.5.0

Omkar@VAST-0137 MINGW64 /d/code

Cela a fonctionné pour moi car le nœud 8.5 n'était pas correctement installé auparavant avec nvm. Je l'ai compris parce que les dossiers et fichiers "npm \ bin \ npm-cli.js" n'étaient pas créés auparavant à l'intérieur de node_modules.

Olagu
la source
Mon chemin semblait correct; La désinstallation / réinstallation a résolu le problème pour moi.
Mark Maslar
J'ai eu des problèmes étranges avec l'ancien nœud même lorsque je suis passé à une version plus récente. J'ai donc désinstallé l'ancien nœud et réinstallé le nouveau. De cette façon, j'ai résolu le problème avec cli :) merci
Andrej Gaspar
5

Ne modifiez aucune variable d'environnement

C'est le programme d'installation qui a causé le problème et n'a pas installé tous les fichiers requis.

Je viens de réparer la configuration de NODEJS sur Windows 7 et cela fonctionne très bien. Peut-être que vous pouvez réinstaller, juste au cas où quelque chose ne fonctionne pas.

TARJU
la source
4

Il y a en fait 2 chemins qui ont été ajoutés à la variable de votre système lors de la mise à niveau vers la dernière version de nodejs.
1. C: \ Program Files \ nodejs
2. C: \ Program Files \ nodejs \ node_modules \ npm \ bin
Pour les utilisateurs de Windows 7/8 / 8.1, ils n'auront pas d'interface graphique intelligente Windows 10 de variables d'environnement.
Quoi qu'il en soit, tout ce que vous avez à faire est de le rechercher "C:\Program Files\nodejs\node_modules\npm\bin"et de le supprimer.
Supprimez également "C:\Users\%USERNAME%\AppData\Roaming\npm"de vos variables d'environnement. Je poste cette réponse car j'ai perdu mes 10 heures à chercher la solution sur Internet. En combinant la réponse ci-dessus, je parviens enfin à résoudre le problème.

hamzox
la source
4

Cela a commencé à se produire pour moi après avoir installé GoogleChrome / puppeteer , la solution était de réinstaller npm:

$ npm i npm@latest

ou

$ npm install npm@latest
Mythz
la source
2

Aucune des solutions ici n'a fonctionné pour moi, mais après avoir redémarré mon système et npm installrecommencé, cela a fonctionné. Je suppose qu'un ou plusieurs processus que j'ai exécutés auparavant s'y sont tenus.

Un simple redémarrage du PC sous Windows 10 a fait la magie pour moi!

papigee
la source
A travaillé pour moi aussi! L'erreur a probablement commencé après une mise à jour Win10
Arno van Oordt le
2

J'ai eu le même problème sur Windows. Je viens de réparer Node et cela a bien fonctionné après un redémarrage de la commande sous Windows.

Bonjour Univers
la source
1

exécutez simplement cette commande:

npm i npm@latest -g
AissaDevLab
la source
Bienvenue dans Stack Overflow! Pourriez-vous expliquer ce que cela fait et comment cela répond à la question?
anothernode
1

npm install -g npm @ [version] a résolu le problème

repo
la source
1

Sous Windows 10:

  1. Appuyez sur la touche Windows, tapez modifier les variables d'environnement système puis entrez.
  2. Cliquez sur les variables d'environnement ...
  3. Dans la moitié inférieure de la fenêtre qui s'est ouverte avec le titre Variables d'environnement, vous verrez un tableau intitulé Variables système, avec deux colonnes, la première intitulée variable.
  4. Trouvez la ligne avec la variable Path et cliquez dessus.
  5. Cliquez sur modifier pour ouvrir une fenêtre intitulée Modifier la variable d'environnement.
  6. Ici si vous trouvez

C: \ Program Files \ nodejs \ node_modules \ npm \ bin

sélectionnez-le, et cliquez sur le bouton Modifier à votre droite, puis modifiez le champ vers le chemin où vous avez le dossier nodejs, dans mon cas, il s'agissait simplement de le raccourcir à:

C: \ Program Files \ nodejs

Ensuite, j'ai fermé tous mes terminaux cmd ou powershell, les ai rouverts et npm fonctionnait.

Julio Peguero
la source
1

Je sais que c'est un article plus ancien, mais au moment où j'écris ceci, la version de Node js est 12.13.1. Les gens sont généralement confrontés à cela parce qu'ils ont peut-être déjà installé une version précédente de Node js qui a ajouté ce qui suit au chemin du système.

C: \ Program Files \ nodejs \ node_modules \ npm \ bin

Cependant, les nouvelles versions doivent ajouter les éléments suivants: -

C: \ Program Files \ nodejs

Je veux dire le chemin où vous avez installé les Nodejs. La valeur par défaut est

C: \ Program Files \ nodejs

Cependant, si vous avez indiqué un emplacement différent, vous devez le désigner.

Dhana
la source
0

Solution pour moi dans VS2017 (Sous Outils | Options ...)

Sous Outils |  Options ...

J'ai changé le chemin en: C: \ Program Files \ nodejs

Michael Maier
la source
0

Je rencontre ce problème lors de l'installation de node9.0.0 sur windows7 à la fin, la solution consistait simplement à supprimer npm npm.cmd npx npx.cmd de C: \ Program Files \ nodejs \ node_modules \ npm \ bin avant de faire cela, une solution de contournement consistait à exécutez C: \ Program Files \ nodejs \ npm afin que ce soit une façon de voir si vous avez le même problème que moi.

Griffon
la source
0

créez un dossier npm manuellement dans node_modules et réexécutez le programme d'installation avec des options de réparation. Il copie les fichiers manquants.

Saurabh Nainwal
la source
0

Dans mon cas, j'utilisais nvm-windows 1.1.6 , et j'ai mis à jour ma version nodejs en utilisant nvm install latest, ce qui m'a finalement dit que nodejs et npm sont installés, mais quand j'ai essayé de le faire npm install, j'ai reçu

Erreur: impossible de trouver le module 'C: \ Program Files \ nodejs \ node_modules \ npm \ bin \ npm-cli.js'

en vérifiant la structure de nvm-windows, j'ai trouvé que C:\Program Files\nodejsc'était un lien symbolique vers %APPDATA%\nvm\NODE_VERSION, (NODE_VERSION était v9.7.1 dans mon cas) dont le dossier node_modulesn'avait rien à l'intérieur, a causé cette erreur. La solution était de copier le npmdossier d'un dossier de l'une de mes versions précédentes node_moduleset de le coller. J'ai ensuite mis à jour mon npm avec npm install npm@next -get tout a recommencé à fonctionner.

Cemal
la source
0

Pour moi, rien de ce qui précède n'a fonctionné, j'ai juste remarqué qu'à chaque fois que je fais une "installation npm ...", toute commande npm cesse de fonctionner. Ainsi, à chaque installation que je fais, je dois exécuter le programme d'installation NodeJS et sélectionner «réparer». Jusqu'à ce que je trouve une vraie solution :)

Olivier
la source
Il est bon de poster des solutions et nous apprécions aussi cela .. Mais il serait mieux si vous expliquez logiquement plutôt que de le dire Magiquement travaillé :)
Aousaf rashid
0

La mise à jour de NPM vers la dernière version a fonctionné pour moi:

npm install npm@latest -g
Zylo
la source
0

Modifiez la variable de chemin d'environnement C: \ Program Files \ nodejs \ node_modules \ npm \ bin et ouvrez le terminal de commande et npm -v et

lokesh sharma
la source
0

Pour les gars qui viennent encore autour de ce fil:

  • installer le nœud à partir du site officiel (vérifiez npm et la version du nœud pour vérifier si installé correctement, oui dans un nouveau terminal / cmd);
  • installez nvm maintenant et lorsque vous êtes invité à gérer le nœud actuel avec nvm, cliquez sur Oui;
  • ouvrez un nouveau cmd et exécutez nvm sur.
Keshav Sharma
la source
Vous n'avez pas besoin d'installer Node depuis le site officiel avec nvm: vous pouvez installer la dernière version de Node avec nvm en cours d'exécution nvm install latest.
Marco Lackovic
0

J'ai rencontré exactement le même problème aujourd'hui sur un serveur Linux. Et la raison est vraiment simple, car je ne l'ai pas fait make installaprès makeet j'ai essayé d'appeler directement le généré npm. Ainsi, le PATH et tout était en désordre.

Donc pour moi, la solution est juste de faire make installaprès makeet d'exécuter le npmdessous .node/bin/npm.

Yuan Tao
la source