Commande express introuvable

137

Pour une raison quelconque, après avoir installé Express globalement sur ma machine avec npm install -g expresssi je suis cddans un répertoire et essayez d'exécuter express, j'obtiens l'erreur suivante:

express: command not found. 

Même si je l'exécute avec, sudoj'obtiens toujours le même résultat. J'ai essayé plusieurs solutions différentes à ce problème et rien n'a fonctionné. J'avais installé le nœud via homebrewlequel certains threads sur Stack Overflow indiquaient qu'ils pouvaient poser un problème, j'ai donc complètement désinstallé le nœud et réinstallé via le programme d'installation sur nodejs.org (j'exécute maintenant la v0.10.26) et le problème persiste.

Si je vais dans mon /usr/local/lib/node_modulesExpress est là-dedans mais dans / usr / local / bin il n'y a rien concernant Express. Je ne sais pas si c'est un problème ou non, mais étant donné qu'il existe des binaires pour d'autres packages de nœuds installés globalement dans ce répertoire, je pense qu'il y a peut-être quelque chose qui ne va pas.

C'est la sortie exacte que j'obtiens lorsque j'installe:

npm http GET https://registry.npmjs.org/express
npm http 304 https://registry.npmjs.org/express
npm http GET https://registry.npmjs.org/accepts/1.0.0
npm http GET https://registry.npmjs.org/type-is/1.0.0
npm http GET https://registry.npmjs.org/range-parser/1.0.0
npm http GET https://registry.npmjs.org/cookie/0.1.0
npm http GET https://registry.npmjs.org/fresh/0.2.2
npm http GET https://registry.npmjs.org/buffer-crc32/0.2.1
npm http GET https://registry.npmjs.org/send/0.2.0
npm http GET https://registry.npmjs.org/methods/0.1.0
npm http GET https://registry.npmjs.org/cookie-signature/1.0.3
npm http GET https://registry.npmjs.org/utils-merge/1.0.0
npm http GET https://registry.npmjs.org/merge-descriptors/0.0.2
npm http GET https://registry.npmjs.org/escape-html/1.0.1
npm http GET https://registry.npmjs.org/serve-static/1.0.1
npm http GET https://registry.npmjs.org/qs/0.6.6
npm http GET https://registry.npmjs.org/path-to-regexp/0.1.2
npm http GET https://registry.npmjs.org/parseurl/1.0.1
npm http GET https://registry.npmjs.org/debug
npm http 304 https://registry.npmjs.org/cookie/0.1.0
npm http 304 https://registry.npmjs.org/type-is/1.0.0
npm http 304 https://registry.npmjs.org/buffer-crc32/0.2.1
npm http 304 https://registry.npmjs.org/methods/0.1.0
npm http 304 https://registry.npmjs.org/accepts/1.0.0
npm http 304 https://registry.npmjs.org/range-parser/1.0.0
npm http 304 https://registry.npmjs.org/cookie-signature/1.0.3
npm http 304 https://registry.npmjs.org/fresh/0.2.2
npm http 304 https://registry.npmjs.org/serve-static/1.0.1
npm http 304 https://registry.npmjs.org/qs/0.6.6
npm http 304 https://registry.npmjs.org/utils-merge/1.0.0
npm http 304 https://registry.npmjs.org/merge-descriptors/0.0.2
npm http 304 https://registry.npmjs.org/escape-html/1.0.1
npm http 304 https://registry.npmjs.org/path-to-regexp/0.1.2
npm http 304 https://registry.npmjs.org/parseurl/1.0.1
npm http 304 https://registry.npmjs.org/debug
npm http 304 https://registry.npmjs.org/send/0.2.0
npm http GET https://registry.npmjs.org/mime
npm http GET https://registry.npmjs.org/send/0.1.4
npm http GET https://registry.npmjs.org/mime
npm http GET https://registry.npmjs.org/negotiator
npm http 304 https://registry.npmjs.org/mime
npm http 304 https://registry.npmjs.org/mime
npm http 304 https://registry.npmjs.org/send/0.1.4
npm http GET https://registry.npmjs.org/range-parser/0.0.4
npm http GET https://registry.npmjs.org/fresh/0.2.0
npm http 304 https://registry.npmjs.org/negotiator
npm http 304 https://registry.npmjs.org/range-parser/0.0.4
npm http 304 https://registry.npmjs.org/fresh/0.2.0
express@4.0.0 /usr/local/lib/node_modules/express
├── methods@0.1.0
├── parseurl@1.0.1
├── utils-merge@1.0.0
├── merge-descriptors@0.0.2
├── escape-html@1.0.1
├── debug@0.8.0
├── cookie-signature@1.0.3
├── range-parser@1.0.0
├── fresh@0.2.2
├── qs@0.6.6
├── buffer-crc32@0.2.1
├── cookie@0.1.0
├── path-to-regexp@0.1.2
├── type-is@1.0.0 (mime@1.2.11)
├── send@0.2.0 (mime@1.2.11)
├── serve-static@1.0.1 (send@0.1.4)
└── accepts@1.0.0 (negotiator@0.3.0, mime@1.2.11)
Tony Barsotti
la source

Réponses:

359

Avec la sortie d'Express 4.0.0, il semble que vous deviez le faire sudo npm install -g express-generator.

PeterVC
la source
3
Cela a fonctionné merci beaucoup pour votre aide! J'étais prêt à m'arracher les cheveux hier soir.
Tony Barsotti
2
sudo n'est pas requis pour le raisonnement mentionné et fonctionnera toujours. stackoverflow.com/questions/4938592/…
StanleyZheng
4
Dommage, même pas la documentation officielle ne le mentionne. ;-)
Azat
Comment l'avez-vous trouvé, si ce n'est pas dans la documentation, comment sommes-nous censés l'apprendre?
Startec
1
Les documents officiels FWIW le mentionnent [maintenant?] - expressjs.com/starter/generator.html
Steven R. Loomis
34

Vous devez exécuter:

npm install -gd express-generator

L'express original avec cli, maintenant le cli divisé en un paquet express-générateur séparé. Initialement généré par le projet exécute le nœud express app.js, car le code pertinent httpserver dans app.js, et maintenant cette partie du code vers le répertoire du projet bin/wwwci-dessous, app.js ne conserve que le code logique de l'application, vous devez exécuter le bin/www. Juste une application très simple et des changements de version de dépendance de package de raffinement.

tearrain
la source
2

J'avais ce défi pendant plusieurs jours. Après une recherche approfondie, j'ai appris qu'il faut lire toutes les ressources disponibles en particulier à partir de la source parent [dans ce cas EXPRESSJS.COM]. Voici une solution rapide.

À partir de la version 4.0+, vous n'avez pas nécessairement besoin d'installer express-generator si vous utilisez Node 8.2+. Exécutez simplement

npx express-generator

Le générateur express fonctionnera exactement comme il s'exécute lorsque vous exécutez:express

Pour plus de détails, voir Mise en route

Bonnes heures de lecture et de recherche.

HilmaStac
la source
1

J'ai récemment essayé d'installer express-Generator, mais cela donnerait,

$ zsh : command not found : express

C'était après que je l'ai fait

$ sudo npm install -g express
$ sudo npm install -g express-generator

Mais ensuite, j'ai vu le journal de la console de la commande d'installation npm

/usr/local/Cellar/node/13.1.0/bin/express -> /usr/local/Cellar/node/13.1.0/lib/node_modules/express-generator/bin/express-cli.js

qui a donné un indice que l'exécutable express se trouve dans le dossier bin.

La solution est donc la suivante: ouvrez ~ / .zshrc ou ~ / .bashrc et exportez le chemin comme suit:

export PATH=/usr/local/Cellar/node/13.1.0/bin:$PATH

Ça fonctionne maintenant.

TheSYNcoder
la source