web-dev-qa-db-fra.com

Erreur, erreur: impossible de trouver le module «express» après l'installation de npm

Je suis nouveau dans les deux Node JS et express, et je viens d'installer npm dans Windows 7.

J'ai installé express en utilisant le drapeau global:

npm install -g express

Cela installe avec succès express dans C:\Users\USER_NAME\AppData\Roaming\npm\node_modules\express, et ajoute C:\Users\USER_NAME\AppData\Roaming\npm à mon chemin.

Cependant, l'utilisation d'express dans la ligne de commande échoue. Toute commande commençant par express me dit qu'elle ne peut pas trouver la commande à exécuter:

 'express' is not recognized as an internal or external command,
  operable program or batch file.

En regardant dans le dossier d'installation, je ne trouve pas non plus de fichier exécutable (un .exe ou un .cmd). La recherche sur les questions passées montre que le dossier node_modules (au moins dans les versions antérieures) devrait contenir à la fois un dossier express (que j'ai) et un .bin dossier, qui contient express.cmd. Je ne semble pas avoir le .bin dossier.

npm --version me donne 1.4.. La version express semble être .0.

J'ai également essayé de l'installer localement et j'ai essayé d'exécuter npm cache clean et réinstaller. Aucune des deux méthodes ne change la situation: il n'y a rien d'exécutable dans le dossier node_modules.

Suis-je en train d'installer express incorrectement? Si oui, pourquoi ne comprend-il pas un fichier exécutable?

34
kotoole

J'ai rencontré le même problème sous Windows 8.1. Le fichier express.cmd n'est pas créé, mais j'ai trouvé le fichier texte:

C:\Users\you\AppData\Roaming\npm\node_modules\express\Readme.md

Il suggère d'exécuter ceci:

npm install -g express-generator@3

Qui va télécharger plus de choses.

Après cela, vous pouvez utiliser express sur l'invite de commande windows. Ce sera dans votre chemin (C:\Users\you\AppData\Roaming\npm)

Modifier:

express-generator@3 est maintenant mis à jour vers express-generator@4, utilisez-le à la place,

npm install -g express-generator@4

La réponse n'est pas complète, car les modules sont installés dans C:\Users\you\AppData\Roaming\npm comme indiqué ci-dessus, et vous ne pouvez pas toujours accéder à un module sans, 1) le lier à votre projet actuel ou 2) définir explicitement le NODE_PATH variable système pointant votre nœud au bon endroit dans le système.

Première méthode,

Après avoir installé le module (express dans notre cas), vous pouvez le lier à votre projet actuel en accédant à votre répertoire de projet actuel en utilisant cmd et en exécutant la commande ci-dessous,

npm link express

Vous obtiendrez un message comme celui-ci s'il est correctement lié,

D:\Project\node_modules\express -> C:\Users\Sufiyan\AppData\Roaming\npm\node_modules\express

(vous ne pouvez pas lier des répertoires sans exécuter cmd avec des privilèges d'administrateur)

La deuxième option consiste à créer ou à mettre à jour la variable système NODE_PATH pointant votre nœud au bon endroit dans le système. Lisez ceci pour plus de détails.

Lisez également cette documentation officielle Node.js concernant le problème,

http://blog.nodejs.org/2011/03/23/npm-1-0-global-vs-local-installation/

84
user3523091

Voici tout ce que vous devez faire:

C:\node> npm install -g express-generator

Vous pouvez trouver cela et bien plus encore sur ce tutoriel de démarrage détaillé .

8
rashadb

Pour résoudre ce problème, vous devez utiliser:

npm install -g express-generator @ 3

Il a été mis à jour à partir de la commande précédente:

npm install -g express

5
Rob Washington

Sachez simplement que la version renvoyée par la commande express --version sera la version de express-generator, pas express.

2
thijs

Exécutez cmd en tant qu'administrateur. Il a résolu le problème "express" introuvable dans mon cas

0
Diana Gene

npm link express pour lier express de n'importe quel répertoire à votre répertoire de projet où se trouvait le nœud, par défaut lorsque vous exécutez npm install express il serait installé dans C:\Users\****\AppData\Roaming\npm\node_modules\express, pour que vous n'ayez pas à installer à chaque fois les frameworks express et autres requis dans votre répertoire de projet, vous pouvez plutôt pointer vers votre nœud, c'est-à-dire où vous avez votre application.

0
Ajay Deepak

J'ai eu ce problème, il semble que nous utilisons -g, il est ignoré.

Je viens de copier le contenu de MyProject/source/vendor à C:\Users\username\AppData\Roaming\npm

Copiez uniquement les dossiers nécessaires dans node_modules (comme: express, express-generator, bower, yo, gulp et les packages qui devraient être dans PATH).


Ce problème dérange vraiment tout le monde (ou les utilisateurs de Windows?), Les programmeurs npm devraient le résoudre!

0
Morteza Ziyae