L'installation NPM ne trouve pas le module 'semver'

196

Je ne peux pas utiliser l' npm installaide de l'invite de commande dans NodeJS. Je reçois ces erreurs lors de l'exécution npm install:

module.js:339
    throw err;
    ^
Error: Cannot find module 'semver'
    at Function.Module._resolveFilename (module.js:337:15)
    at Function.Module._load (module.js:287:25)
    at Module.require (module.js:366:17)
    at require (module.js:385:17)
    at Object.<anonymous> (C:\Users\admin\AppData\Roaming\npm\node_modules\npm\l
ib\config\defaults.js:6:14)
    at Module._compile (module.js:435:26)
    at Object.Module._extensions..js (module.js:442:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:311:12)
    at Module.require (module.js:366:17)
user2447562
la source
4
J'ai eu le même problème Alternativement, vous pouvez utiliser du fil, au lieu de npm
Wojciech Maślanka
1
Utilisez-vous Yarn pour installer le package.json?
anandharshan
1
Réinstallez simplement npm
Nuno Ferro

Réponses:

402

J'ai eu la même erreur. npm uninstall npm -g, rm -rf node_modulesne m'a pas aidé, parce que quand j'essayais, j'obtenais Error: Cannot find module 'semver'. Mais je résous mon problème avec ces étapes (cela supprimera les autres modules globaux que vous utilisez):

  • sudo rm -rf /usr/local/lib/node_modules
  • sudo rm -rf ~/.npm
  • brew uninstall --force node
  • brew install node

J'espère que cela aidera ceux qui ont un problème similaire.

artiebits
la source
3
Utilisé sur deux machines différentes exécutant El Capitan, fonctionnait dans les deux cas.
Kamikaze Rusher
7
Utilisez brew uninstall --force nodepour supprimer toutes les versions
deleze
5
réinstallez simplement npm. curl -0 -L https://npmjs.org/install.sh | sudo shaprès avoir supprimé le dossier npm
Baryon Lee
17
Si Yarn est déjà installé, brew uninstall --ignore-dependencies nodefonctionne pour moi là où il brew uninstall --force nodene l'a pas été.
Maxime Lafarie
13
C'est ma faute pour avoir collé aveuglément des commandes, mais cela sudo rm -rf /usr/local/lib/node_modulesm'a fait perdre des modules globaux que j'utilise comme gulp et selenium server. Soyez fatigué de cela
AmmarCSE
84

Je suis confronté au même problème ici.

Si cela se produit juste après avoir exécuté, brew install yarnessayez de courir yarn global add npmet voilà - corrigé!

Ashoor
la source
2
Cette solution a très bien fonctionné pour moi et est infiniment plus simple que les alternatives ici. Je pense que le fil peut modifier npm si l'installation obtient une erreur d'autorisation / d'accès pendant la mise à niveau / l'installation.
Slbox
52

Sous MS Windows, la solution consiste à supprimer %APPDATA%\npmet réinstallernode

Gangadhar
la source
J'aimerais pouvoir doubler ce vote pour Windows. Il y a un problème: le répertoire AppData était caché par défaut, donc je ne pensais pas qu'il était réellement installé à cet emplacement.
Ringo
7
Sur Windows, il suffit de réparer, pas besoin de réinstaller
MotKohn
2
@MotKohn Repaire quoi? Une jambe? un os? une voiture? "repaire" quoi?!
samayo
2
@samayo Sous Windows où vous installez, il existe une option de réparation. Désolé, c'était un commentaire contextuel.
MotKohn
2
Cette approche a également fonctionné pour moi sur mon ordinateur portable Windows 8.1 Enterprise 64 bits. J'ai dû supprimer les dossiers "npm" ainsi que "npm-cache", suivi d'une désinstallation et d'une nouvelle installation de noeud.
Eddie
46

J'ai eu ça aussi, après avoir couru brew install yarnhier. Au moins, tout allait bien jusque-là.

J'ai couru rm -rf node_moduleset essayé de réinstaller, mais aucune npmcommande ne fonctionnait.

Au final, j'ai pris la décision assez simple de réinstaller Node via l'installateur officiel de Node pour Mac OS X.

https://nodejs.org/en/download/

Tout va bien maintenant. Je suis juste retourné dans le répertoire, j'ai couru npm installet ça a fait l'affaire.

raffjones
la source
npm installl'a fait pour moi. J'installais toutes les dépendances une par une, mais je les ai toutes npm installfaites en même temps. Merci.
tazboy
3
J'ai aussi eu l'idée de cela après unbrew install yarn
Walter Martin Vargas-Pena
1
la simple réinstallation de node.js à partir du programme d'installation officiel d'osx a aidé. Merci!
Roman
ça m'est aussi arrivé après brew install yarn!! ce que le diable, fil
movac
23

Sur Arch Linux, ce qui m'a fait l'affaire:

sudo pacman -Rs npm
sudo pacman -S npm
Telmo Trooper
la source
1
J'ai dû utiliser sudo pacman -Rddpour supprimer en ignorant les dépendances, mais cela n'a pas résolu le problème pour moi. L'installation de semver à partir des paquets arch dans la réponse de Mathias Braun l'a fait.
Pierre-Alexis Ciavaldini
15

Après avoir rencontré cela sur Arch Linux 4.13.3, j'ai résolu le problème en réinstallant simplement semver:

pacman -S semver
Matthias Braun
la source
8

En fait, il prend la référence des modules précédemment stockés.

Solution: supprimez le dossier npm-cache / npm dans le répertoire d'installation de nodejs. Sous Windows, il se trouve dans C: / User / Username / Appdata / Roaming / npm (ou npm_cache). et essayez de réinstaller.

Même chose à faire dans n'importe quel OS.

Shubham Jaiswal
la source
C'est tout. J'ai désinstallé le nœud. Puis supprimé à la fois npmet npm_cachede /Appdata/Roaming. Puis nœud installé à nouveau. Il semble que le cache y soit blâmé.
Saulius
7

Dans mon cas sur macOS (10.13.6), lorsque j'ai exécuté la commande suivante

npm install -g react-native-cli

J'ai cette erreur

Error: Cannot find module 'semver'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
    at Function.Module._load (internal/modules/cjs/loader.js:562:25)
    at Module.require (internal/modules/cjs/loader.js:690:17)
    at require (internal/modules/cjs/helpers.js:25:18)
    at Object.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/unsupported.js:2:14)
    at Module._compile (internal/modules/cjs/loader.js:776:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:787:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)

L'erreur a été résolue après l'exécution de la commande

yarn global add npm

proposé par @Ashoor

Zeeawan
la source
5

Pour moi, cela s'est produit après avoir installé le fil dans le monde entier. Pour résoudre ce problème, installez npm à l'aide de fil et c'est fait.

yarn global add npm
the_haystacker
la source
4

Sous Windows, télécharger à nouveau le MSI de Node et effectuer une «réparation» a fonctionné pour moi.

Sornakumar
la source
2

J'ai eu le même problème mais il a été causé par un package-lock.jsonfichier cassé .

La suppression package-lock.jsonet la réexécution l'ont npm installcorrigé pour moi.

Wireblue
la source
2

J'ai rencontré ce problème lorsque j'ai couru en npm installutilisant une version inférieure du nœud. Plus tard, lorsque j'ai effectué la mise à niveau vers la dernière version du nœud et exécuté gulp, il a montré cette erreur.

Pour résoudre, supprimé node_modules et relancé npm install. Puis gulpa bien fonctionné.

cédrique
la source
1

Supprimez simplement le dossier / node_modules et réessayez. ;)

Vous pouvez utiliser npm rmpour le supprimer.

Vous pouvez également vérifier ce problème sur GitHub. Pour être plus précis au sujet de non-historique, essayez de suivre ceci :

Désinstallation

Tellement triste de te voir partir.

sudo npm uninstall npm -gOu, si cela échoue,

sudo make uninstall Désinstallation plus grave

Habituellement, les instructions ci-dessus sont suffisantes. Cela supprimera npm, mais laissera derrière tout ce que vous avez installé.

Si vous souhaitez supprimer tous les packages que vous avez installés, vous pouvez utiliser la commande npm ls pour les trouver, puis npm rm pour les supprimer.

Pour supprimer la corruption laissée par npm 0.x, vous pouvez utiliser le fichier de script clean-old.sh inclus. Vous pouvez l'exécuter commodément comme ceci:

npm explore npm -g - sh scripts / clean-old.sh npm utilise deux fichiers de configuration, un pour les configurations par utilisateur et un autre pour les configurations globales (pour tous les utilisateurs). Vous pouvez les visualiser en faisant:

npm config get userconfig # defaults to ~ / .npmrc npm config get globalconfig # defaults to / usr / local / etc / npmrc La désinstallation de npm ne supprime pas les fichiers de configuration par défaut. Vous devez les supprimer vous-même manuellement si vous voulez qu'ils disparaissent. Notez que cela signifie que les futures installations de npm ne se souviendront pas des paramètres que vous avez choisis.

Rodmentou
la source
Mis à jour ma réponse. Essayez-le maintenant. Si cela ne fonctionne pas, testez quelque chose pour moi. Copiez le package.json dans un autre dossier et essayez d'utiliser npm install.
Rodmentou
1
Pouvez-vous coller votre package.json, s'il vous plaît?
Rodmentou
{"name": "workspace", "version": "0.0.0", "private": true, "scripts": {"start": "node ./bin/www"}, "dependencies": {" analyseur de corps ":" ~ 1.13.2 "," bson ":" ^ 0.2.22 "," cookie-parser ":" ~ 1.3.5 "," debug ":" ~ 2.2.0 "," express " : "~ 4.13.1", "hbs": "~ 3.1.0", "moine": "^ 1.0.1", "morgan": "~ 1.6.1", "serve-favicon": "~ 2.3 .0 "}," moteurs ": {" node ":" 4.2.2 "}}
user2447562
Avez-vous essayé d'exécuter npm install avec votre package.json dans un autre dossier?
Rodmentou
je dois désinstaller sur node.js, après avoir installé node.js .... je dois créer sampleapplication en utilisant mean.that cette fois je dois installer la commande npm intall, mais je reçois la même erreur ... veuillez donner une solution à moi ....
user2447562
1

J'ai finalement compris cela! Oui, vous devez désinstaller / supprimer tous les fichiers et réinstaller. MAIS CERTAINS DES CHEMINS DE FICHIERS SONT TROP LONGS À SUPPRIMER PENDANT LE PROCESSUS DE DÉSINSTALLATION. Les chemins de fichiers sont si longs dans Node qu'ils ne peuvent pas être supprimés. Vous devez renommer les chemins d'accès aux fichiers.

Après avoir désinstallé Node, utilisez l'invite de commande, accédez à ... \ Appdata \ roaming \ (utilisez le chemin d'accès du message d'erreur). Essayez de supprimer le dossier avec del npm. Ensuite, si cela ne vous permet pas de supprimer un dossier, commencez à renommer les dossiers dans le chemin du fichier dans le prochain message d'erreur par "a" ou quelque chose de court. Vous devrez peut-être effectuer cette opération pour plusieurs dossiers le long du chemin. Vous devriez alors pouvoir supprimer! Réinstallez ensuite le nœud et cela devrait fonctionner.

Le Windhover
la source
0

Dans mon cas, la simple réexécution a brew install yarnrésolu le problème.

jack4it
la source
0

J'ai rencontré le même problème après que le brassage ait installé du fil sur mon MacOs Sierra 10.12.6. (Et le premier essai d'installation tombe après la mise à jour automatique du brassage avec un message "Homebrew doit être exécuté sous Ruby 2.3! Vous exécutez 2.0.0. (RuntimeError)". Je le réexécute donc.)

J'utilise donc n manager pour réinstaller npm.

  • passer à une autre version de noeud (pour mon cas à 8.0) par la commande "n" avec des paramètres vides
  • ou installez nouveau par "n xxx" où xxx le numéro de version du nœud (j'ai besoin de 6.9.1)
  • supprimer la version de travail par "n rm xxx" où xxx le numéro de version du nœud. utilisez sudo si besoin
  • installez la version de travail par "n xxx" où xxx le numéro de version du nœud. utilisez sudo si besoin
  • passer à la version de travail du nœud. (voir la première étape pour référence)

Je pense que le problème peut être dû au fait que le nœud a été installé sous sudo pour le cas.

Le plus grand
la source
0

J'ai eu le même problème lors de l'installation sur AWS Linux. Je devais l'installer avecsudo . Donc, pour contourner ce problème, j'ai suivi l'étape 3 de cet article (en veillant à obtenir la dernière version du nœud)

https://www.hostingadvice.com/how-to/update-node-js-latest-version/

wget https://nodejs.org/dist/vx.x.x/node-vx.x.x-linux-x64.tar.xz
tar -C /home/aUser/node --strip-components 1 -xJf node-vx.x.x-linux.x64.tar.xz

Mais installé dans le répertoire personnel de l'utilisateur /home/aUser/node . Ensuite, j'ai ajouté ce chemin à mon CHEMIN.

export PATH=/home/aUser/node/bin:$PATH

Après cela, j'ai pu faire un npm installsans problème.

Jerinaw
la source
0

J'ai rencontré ces problèmes lors de l'exécution du projet sur une version supérieure de cli. Pour résoudre ce problème, vous pouvez simplement commenter le module @ angular-devkit / build-angular et vous devez à nouveau le réinstaller via

npm install @ angular-devkit / build-angular --save

sachin
la source
0

Assurez semver- vous simplement qu'il est installé:npm install -g semver

Javarome
la source
1
npm ne fonctionne pas, vous ne pouvez donc pas installer semver via npm. La meilleure solution est d'utiliser du fil pour installer npm ou les paquets manquants
NFpeter
@NFpeter J'ai eu exactement le même problème que celui indiqué dans la question et l'ai résolu de cette façon, donc npm a fonctionné (dans mon cas au moins).
Javarome
0

Pour moi, cela s'est produit lors de la mise à niveau vers gulp 4 à partir de gulp 3 dans mon projet. Ainsi, lorsque j'exécute la commande "gulp watch", cela me lance la même erreur.

C'est probablement dû à une incompatibilité de version par rapport à mon gulp installé à l'échelle mondiale.

Donc, soit la mise à niveau de gulp avec le drapeau global "-g" aiderait, soit je l'ai suivi ci-dessous

Cependant, j'ai utilisé "./node_modules/.bin/gulp watch" dans mon projet. Cela garantit que toutes les dépendances dont Gulp a besoin sont prises uniquement à partir de node_modules.

myDoggyWritesCode
la source
0

Comme indiqué par anonyme (?) Sur DeveloperReference.com, les étapes ci-dessous ont résolu le «ne peut pas trouver le module« semver »» pour moi lors de l'exécution de npm -install:

* "J'ai suivi ces étapes et cela a résolu mon problème de désinstallation de Node.js

  1. Supprimez le contenu des dossiers suivants
    • C: \ Users \ {nom d'utilisateur} \ AppData \ Roaming \ npm-cache
    • C: \ Users \ {nom d'utilisateur \ \ AppData \ Roaming \ npm
  2. C: \ Program Files \ nodejs Ensuite, installez à nouveau Node à partir de https://nodejs.org/en/ "*

https://html.developreference.com/article/12253101/Cannot+find+module+%27semver%27+When+installing+Npm

Mosca Pt
la source
-1

Vérifiez simplement vos scripts de préinstallation si vous en avez un. Parfois, pour restreindre les versions de nodeet npmil faut exécuter un projet.

Si tel est le cas, vous devez installer semvermanuellement vianpm install -g semver

Mr94
la source
-2

J'ai rencontré le même problème et l'ai résolu en mettant à niveau ma version Node

Tim
la source