javascript - proyecto - Módulo Express no encontrado cuando se instala con NPM
npm express generator (14)
¿Qué pasa con NODE_PATH=/usr/local/lib/node_modules
en .bashrc o .bash_profile ? Creo que es la verdadera forma correcta.
Cuando intento ejecutar el archivo app.js creado por express, aparece el siguiente error:
$ node app.js
node.js:134
throw e; // process.nextTick error, or ''error'' event on first tick
^
Error: Cannot find module ''express''
at Function._resolveFilename (module.js:320:11)
Cuando escribo ''express -version'' recibo una declaración de devolución de 2.3.3. Usé npm para instalar Express. Tuve que hacer npm manualmente usando estas instrucciones:
git clone http://github.com/isaacs/npm.git
cd npm
sudo make install
El error es Error: Cannot find module ''express''
.
¿Debo hacer algo después de instalar npm y expresar para poder ver los módulos creados por npm?
Mi nodo es versión: 0.4.6 My express es versión: 2.3.3 My npm es versión: 1.0.6
Express está instalado globalmente. Usé la bandera -g para instalarlo.
Editar: Cuando pruebo "node -e require.paths" obtengo:
[''/home/user/.node_modules'', ''/home/user/.node_libraries'', ''/ usr / local / lib / node'']
Entonces, el nodo no detecta la instalación de npm. ¿Cómo obtengo un nodo para detectar la instalación de npm?
En Ubuntu 12.04, debe agregar la export NODE_PATH=/usr/local/lib/node_modules
a su /.bashrc para usar módulos instalados globalmente.
Establezca NODE_PATH=NODE_HOME/node_modules
.
Estoy usando Windows 7 y funciona bien.
Finalmente, con Linux, una buena forma de hacerlo es usar el comando: sudo apt-get install node-express
Pero con Express 4 debemos usar express-generator para hacer el esqueleto de la aplicación, instalarlo con ''npm install express-generator -g'', y luego ejecutar el comando ''express myapp''. ver también instalar express
Instalé gulp
y cuando ejecuté este comando gulp
en la línea de comando, recibí un error gulp: command not found
. Parece que instaló gulp
en mi carpeta local que es / /home/YOURUSERNAME/.node/lib/node_modules
/ /home/YOURUSERNAME/.node/lib/node_modules
/ /home/YOURUSERNAME/.node/lib/node_modules
/ /home/YOURUSERNAME/.node/lib/node_modules
/ /home/YOURUSERNAME/.node/lib/node_modules
y no está en la carpeta npm
global.
Puede verificar la carpeta raíz de npm
ejecutando este comando: npm root -g
, que devolvió mi directorio personal /home/YOURUSERNAME/.node/lib/node_modules
y no el esperado /usr/local/lib/node_modules
.
Puedes arreglar esto ejecutando la npm config set prefix /usr/local
command.
Parece que la forma más sencilla de hacerlo es ejecutar la npm install
desde la carpeta de la aplicación. Esto le dice a npm que lo conecte todo.
Es la última instrucción después de express <appname>
:
...
dont forget to install dependencies:
$ cd <appname> && npm install
Parece que mientras npm se había actualizado para instalar módulos globales en / usr / local / lib / node_modules, los propios require.paths de Node aún no reflejan este cambio.
Hay dos soluciones razonables:
1.
Agregue el siguiente código al principio de su aplicación:
require.paths.push(''/usr/local/lib/node_modules'');
Pro: no invasivo, fácil de agregar
Con: requiere disciplina, las versiones futuras de nodo restringirán el acceso a require.paths
2.
Como root, ejecuta:
ln -s /usr/local/lib/node_modules /usr/local/lib/node
Pro: razonablemente no invasivo
Con: requiere root, modifica linux fs, puede que no sobreviva actualizaciones del sistema
Si usa Windows, puede suceder que la variable de entorno NODE_PATH no esté configurada y, por lo tanto, cuando ejecute el nodo fileName.js no encontrará las bibliotecas. Compruebe la variable en su consola, y si no está presente, créelo. Déle el valor NODE_HOME / node_modules, donde NODE_HOME es su directorio de instalación del nodo. Esta ruta es donde la instalación de npm coloca cada módulo en la descarga.
Use instalaciones locales para require () e instalaciones globales para aplicaciones de línea de comandos.
Si necesita ambos, use el comando npm link
.
Yo tuve el mismo problema. Esto funcionó para mí, sin embargo:
Parece que npm (¿ahora?) Instala módulos de nodo en /usr/local/lib/node_modules/
y no /usr/local/lib/node/
Lo que hice fue simplemente copiar todo de node_modules a node: sudo cp -r /usr/local/lib/node_modules/* usr/local/lib/node/
y ahora parece funcionar para mí.
Espero que esto te ayude :-)
para todos los problemas con Express con una computadora Mac:
La solucion es:
1.- Elija a su usuario la carpeta .npm:
sudo chown -R Webmaste /Users/webmaste/.npm/
- En tu carpeta de prueba o tu carpeta:
sudo npm install -g [email protected]
- Invocar expreso desde su ubicación real:
/ usr / local / share / npm / bin / express
4: sudo cd. && npm instalar
5: finalmente:
aplicación nodo
el mensaje final en la consola debería verse así:
Servidor Express escuchando en el puerto 3000 en modo de desarrollo
para usuarios de mac
cd /usr/local/lib/node
sudo ln -s ../node_modules/* ./$1
require.paths se elimina, use la variable de entorno NODE_PATH en su lugar.
Instalar expreso
npm install -g express
Crea una nueva aplicación
express your_app
cd en el directorio de la aplicación
cd your_app
use el enlace npm para resolver los módulos
npm link express