Por alguna razón, después de instalar Express globalmente en mi máquina, npm install -g express
si entro cd
en un directorio e intento ejecutar express, aparece el siguiente error:
express: command not found.
Incluso si lo ejecuto, sudo
sigo 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 homebrew
cual 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_modules
Express 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)
fuente
Necesitas ejecutar:
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/www
continuación, app.js retiene solo lograr el código lógico de la aplicación, debe ejecutar elbin/www
. Solo una aplicación muy simple y la versión de dependencia del paquete de refinamiento cambia.fuente
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
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.
fuente
Recientemente he estado tratando de instalar express-generator, sin embargo, me di cuenta,
Fue después de que lo hice
Pero entonces, vi el registro de la consola del comando npm install
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:
Ahora funciona.
fuente