Comando expreso no encontrado

137

Por alguna razón, después de instalar Express globalmente en mi máquina, npm install -g expresssi entro cden un directorio e intento ejecutar express, aparece el siguiente error:

express: command not found. 

Incluso si lo ejecuto, sudosigo obteniendo el mismo resultado. He intentado múltiples soluciones diferentes a este problema y nada ha funcionado. Había instalado un nodo a través del homebrewcual algunos subprocesos en Stack Overflow indicaron que podría haber sido un problema, así que desinstalé completamente el nodo y lo reinstalé a través del instalador en nodejs.org (ahora estoy ejecutando v0.10.26) y el problema aún persiste.

Si entro en mi /usr/local/lib/node_modulesExpress está allí pero dentro de / usr / local / bin no hay nada con respecto a Express. No estoy seguro de si eso es un problema o no, pero teniendo en cuenta que hay binarios para otros paquetes de nodos instalados globalmente en ese directorio, creo que puede haber algo mal allí.

Este es el resultado exacto que obtengo cuando instalo:

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
fuente

Respuestas:

359

Con el lanzamiento de Express 4.0.0, parece que debe hacerlo sudo npm install -g express-generator.

PeterVC
fuente
3
Esto funcionó muchas gracias por su ayuda! Estaba listo para arrancarme el pelo esta última noche.
Tony Barsotti
2
sudo no es necesario para los motivos mencionados y seguirá funcionando. stackoverflow.com/questions/4938592/…
StanleyZheng
44
Bummer, ni siquiera la documentación oficial lo menciona. ;-)
Azat
¿Cómo lo encontraste? Si esto no está en la documentación, ¿cómo se supone que debemos aprender al respecto?
Startec
1
Los documentos oficiales de FWIW lo mencionan [ahora?] - expressjs.com/starter/generator.html
Steven R. Loomis
34

Necesitas ejecutar:

npm install -gd express-generator

El expreso original con cli, ahora el cli se divide en un paquete de generador expreso separado. Originalmente generado por el proyecto está ejecutando el nodo express app.js, porque httpserver el código relevante en app.js, y ahora esta parte del código al directorio del proyecto a bin/wwwcontinuación, app.js retiene solo lograr el código lógico de la aplicación, debe ejecutar el bin/www. Solo una aplicación muy simple y la versión de dependencia del paquete de refinamiento cambia.

lágrima
fuente
2

Tuve este desafío durante varios días. Después de una búsqueda profunda, aprendí que uno tiene que leer todos los recursos disponibles, especialmente de la fuente principal [en este caso EXPRESSJS.COM]. Aquí hay una solución rápida.

A partir de la versión 4.0+, no necesariamente necesita instalar express-generator si está ejecutando el Nodo 8.2+. Simplemente corre

npx express-generator

El generador expreso se ejecutará de la misma manera que cuando ejecuta:express

Para obtener más detalles, consulte Primeros pasos.

Feliz lectura y horas de investigación.

HilmaStac
fuente
1

Recientemente he estado tratando de instalar express-generator, sin embargo, me di cuenta,

$ zsh : command not found : express

Fue después de que lo hice

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

Pero entonces, vi el registro de la consola del comando npm install

/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

que dio una pista de que el ejecutable express está en la carpeta bin.

Entonces la solución es: Abra ~ / .zshrc o ~ / .bashrc y exporte la ruta de la siguiente manera:

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

Ahora funciona.

TheSYNcoder
fuente