2011-05-23 4 views
25

nouvelle ubuntu vm vient d'être installé pour tester autour avec nœud choses installées dans cet ordre:commande express ne se trouve pas dans bash après l'avoir installé avec NPM

node 
mongodb-server 
npm 
express 
mongoose 

maintenant, en essayant de créer une nouvelle application i remarqué express ne peut pas être utilisé dans la coquille. express -v retours express: command not found

je l'ai installé NPM comme celui-ci

curl http://npmjs.org/install.sh | sudo sh 

et j'installé exprimer ainsi

npm install express 

des idées?

+2

NPM installer -g express-générateur, et cd monapp && NPM installer, http://expressjs.com/guide.html – miukki

Répondre

39

npm install express -g

Vous devez l'installer au niveau mondial. NPM 1.0 installe les modules localement par défaut. Donc l'exécutable bash vit dans /node_modules/bin/. Vous pouvez ajouter à ce dossier PATH ou vous pouvez simplement installer express globalement afin qu'il soit repris par PATH

+2

Vous pouvez également exécuter des scripts par NPM en ajoutant un « scripts "object à votre package.json, et faire," $ npm run-script scriptname ". NPM ajoute les différents répertoires bin dans le repo du paquet local au chemin avant d'exécuter le script: –

+1

+1 pour ajouter l'objet scripts à package.json et utiliser 'npm run-script scriptname' - ceci permet de garder votre espace global libre et vous permet pour tester plus précisément votre environnement de production en mode dev. – Gilman

2

EDIT 29/06/2017: cette réponse est 6+ ans, mais obtient toujours votes/trafic. Au lieu de (pour les nouveaux utilisateurs ayant des problèmes) Je ferais confiance à la fois NODE_PATH official doc et corresponding bit about REPL usage avant cette réponse. Tout à fait semblable à ce problème, le nœud ne trouvait pas mon installation express globale, donc une instruction require('express') échouerait. Ce qui corrigé cela pour moi, quand une installation globale n'a pas été ramassée par le noeud était de s'assurer que NODE_PATHenv. variable était réglé correctement. sur Ubuntu 11.04, avec la version 0.5.0 noeud-avant, les chemins me étaient:

NODE_PATH=/usr/local/lib/node_modules:/usr/local/lib/node 

Donc, pour vous clarifiez pouvez exporter env ci-dessus. variable ou vous pouvez tester les valeurs ci-dessus par faire:

NODE_PATH=/usr/local/lib/node_modules:/usr/local/lib/node node ./you_app.js 
0

Si vous utilisez Windows:

export NODE_PATH="C:\Users\IMarek\AppData\Roaming\npm\node_modules" 
+0

Windows n'a pas 'export'. Si vous faites référence à cygwin ou mingw ou quelque chose comme ça, vous devriez probablement le rendre explicite. – hippietrail

6

J'ai eu ce problème et a été noeud installation via Homebrew. Le problème était causé par Homebrew.

Je l'ai fait:

brew uninstall node 

puis nœud installé à l'aide du programme d'installation sur le site nodejs.org.

Je couru:

npm install -g express 

Et voila aucun problème.

+0

Même problème et suggestion fonctionnait parfaitement! –

82

À partir d'express 4.00 vous devez également installer le générateur express avec:

npm install -g express-generator 

Seulement après cela, vous serez en mesure d'exécuter express comme une commande!

Pour la confirmation, voir: ExpressJS.com - Migrating to Express 4

+5

Enfin! Cela devrait être accepté comme une bonne réponse à partir de maintenant. J'ai même eu l'express dans ma variable PATH et rien ne fonctionnait. Merci @Fazi. – Tommz

+0

Vrai, c'est le seul moyen – Mirko

+0

Avez-vous une idée pourquoi cela ne fonctionnerait pas pour moi? Je lance sudo npm install -g express-generator et il s'installe à usr/bin mais je ne peux pas utiliser express. Je tape "test express" et rien ne se passe. Cela revient juste à la ligne suivante. – michaelAdam

2

Avec la sortie de express 4.0.0 il semble que vous devez faire sudo npm install -g express-generator.

+0

Bien que correct, en quoi cette réponse est-elle différente de la réponse déjà donnée par Fazi? http://stackoverflow.com/a/23266782/617937 – IQAndreas

+0

en fait c'est la meilleure réponse. – g07kore

0

je devais faire une combinaison de choses:

1) de node.js modules path:

echo 'export NODE_PATH="'$(npm root -g)'"' >> ~/.bash_profile && . ~/.bash_profile 

Ceci définit le chemin du fichier en bash le profil (peut être visualisé en utilisant nano .bash_profile

2) légèrement modifié par rapport à Raynos (ci-dessus) étant donné que je besoin sudo:

sudo npm install express -g 

3) modifié légèrement de Fazi (above0 puisque je besoin sudo:

sudo npm install -g express-generator 

ESSAI DE VOTRE DEMANDE: run DEBUG=myapp:* npm start

Ref: http://expressjs.com/en/starter/generator.html

Questions connexes