Después de extraer un módulo de GitHub y seguir las instrucciones para compilarlo, trato de incorporarlo a un proyecto existente usando:
> npm install ../faye
Esto parece hacer el truco:
> npm list
/home/dave/src/server
└─┬ faye@0.7.1
├── cookiejar@1.3.0
├── hiredis@0.1.13
└── redis@0.7.1
Pero Node.js no puede encontrar el módulo:
> node app.js
node.js:201
throw e; // process.nextTick error, or 'error' event on first tick
^
Error: Cannot find module 'faye'
at Function._resolveFilename (module.js:334:11)
at Function._load (module.js:279:25)
at Module.require (module.js:357:17)
at require (module.js:368:17)
at Object.<anonymous> (/home/dave/src/server/app.js:2:12)
at Module._compile (module.js:432:26)
at Object..js (module.js:450:10)
at Module.load (module.js:351:31)
at Function._load (module.js:310:12)
at Array.0 (module.js:470:10)
Realmente quiero entender lo que está sucediendo aquí, pero estoy un poco perdido en cuanto a dónde mirar a continuación. ¿Alguna sugerencia?
node_modules
espera que el directorio esté en la raíz de su proyecto, juntoapp.js
con su caso. ¿Por qué..
usaste la ruta de instalación de npm?Respuestas:
El uso
npm install
instala el módulo solo en el directorio actual (en un subdirectorio llamadonode_modules
). ¿Se encuentra app.js debajohome/dave/src/server/
? Si no es así y desea utilizar el módulo desde cualquier directorio, debe instalarlo globalmentenpm install -g
.Normalmente instalo la mayoría de los paquetes localmente para que se registren junto con mi código de proyecto.
Actualización (8/2019):
Hoy en día puede usar el archivo package-lock.json , que se genera automáticamente cuando npm modifica su directorio node_modules. Por lo tanto, puede omitir el ingreso de paquetes, ya que
package-lock.json
rastrea las versiones exactas de sus node_modules que está utilizando actualmente. Para instalar paquetes desde enpackage-lock.json
lugar depackage.json
usar el comandonpm ci
.Actualización (3/2016):
He recibido muchas críticas por mi respuesta, específicamente que verifico los paquetes de los que depende mi código. Hace unos días, alguien no publicó todos sus paquetes ( https://kodfabrik.com/journal/i-ve-just-liberated-my-modules ) que rompieron React, Babel y casi todo lo demás. Esperemos que ahora esté claro que si tiene un código de producción, no puede confiar en que NPM realmente mantenga sus dependencias por usted.
fuente
package.json
lista de los módulos npm de los que depende e ignorar lanode_modules
carpeta. Luego, simplementenpm install
para obtener la configuración después de clonar el repositorio.package.json
enumerar las dependencias, me gusta mantener copias conocidas de las cosas de las que dependo. El espacio en disco es económico y si npm o el paquete desaparece de npm, todavía tendré un proyecto completamente funcional en mi repositorio.Tuve un problema muy similar. Eliminar la
node_modules
carpeta completa y volver a instalar funcionó para mí:fuente
npm install
/npm update
no resolverá. Esto resolvió un problema en el que seError: Cannot find module 'http-errors'
mostraba aleatoriamente cuando intentaba ejecutar mi aplicación Express.npm install
.Por ejemplo, si el error es:
entonces puede resolver este problema ejecutando el comando
npm install --save form-data
.fuente
ng new project-name
, mostraba que faltaban algunos módulos ... Tuve que instalarlos cada uno usando el comando dado. Entonces resolvió el problema pero está ¿Hay algún comando único para instalarlos todos a la vez?Para los usuarios de TypeScript, si está importando un módulo de Nodo incorporado (como
http
,path
ourl
) y está obteniendo un error,"Cannot find module "x"
entonces el error se puede solucionar ejecutandoEl comando importará las definiciones de NodeJS TypeScript en su proyecto, permitiéndole usar los módulos integrados de Node.
fuente
Esto sucede cuando un primer npm instalación de ha por algún motivo (SIGINT of npm), o si el retraso fue demasiado largo o los datos están dañados. Intentar una instalación npm nuevamente no salvará el problema.
Algo salió mal en la primera comprobación de npm, por lo que la mejor opción es eliminar el archivo y reiniciar la instalación de npm.
fuente
npm cache clear
y limpiando node_modules seguido denpm install
para solucionar mi problema.Si usa nvm, verifique que los módulos de nodo existentes que son enlaces a otras bibliotecas estén compilados para la versión correcta de Node.js.
Estaba teniendo el mismo error. La razón fue la siguiente: usamos nvm ya que estamos ejecutando dos aplicaciones en un servidor, una requiere Node.js 5.6 porque usa node-gd (que no se ejecuta en Node.js 6 por ahora), la otra requiere Node.js 6. Node.js 6 es la instalación de apt-get .
También utilizamos la herramienta pm2 para implementar.
Por lo tanto, la configuración predeterminada es que el proceso pm2 comienza cuando nvm no está vigente, por lo que utiliza la instalación apt-get de Node.js (versión 6). Entonces, el demonio principal pm2 comienza con Node.js 6. Si ejecuto aplicaciones en modo fork, comienzan en procesos separados y la configuración de nvm está vigente. Cuando ejecuto aplicaciones en modo de clúster, heredan el entorno no nvm.
Entonces, cuando intenté cambiar al modo de clúster, la aplicación no se pudo iniciar porque los enlaces compilados para 5.6 fallan con este mensaje.
Lo arreglé reiniciando pm2 cuando los ajustes nvm están en vigor. También los scripts de inicio deben ser reparados.
fuente
Compruebe si la variable de entorno NODE_PATH está configurada correctamente y apunta a la ruta node_modules. nodejs usa esta variable para buscar las bibliotecas
fuente
Experimenté este error ayer. Me tomó un tiempo darme cuenta de que la
main
entradapackage.json
apuntaba a un archivo que había movido. Una vez que actualicé eso, el error desapareció y el paquete funcionó.fuente
main
entrada para mi submódulo en un directorio que estaba excluido de su repositorio, así que cuando intenté incluirlo a través denpm install
él funcionó, ¡pero no se encontraron exportaciones cuando fue necesario! Muchas gracias por esta respuesta obvia pero útil.Elimine su
node_module
carpeta raíz de su proyecto (por ejemplo:)myApp
. Vaya a lamyApp
carpeta y luego escriba el siguiente comando desde la terminalInstalará todos los módulos de dependencia necesarios para su proyecto.
fuente
Este error se puede encontrar si está
require
creando un módulo que tiene unmain
campo faltante o incorrecto en su package.json. Aunque el módulo en sí está instalado, npm / node tiene que usar un único archivo .js como punto de entrada a su módulo. Si elmain
campo no está allí, el valor predeterminado es buscarindex.js
en la carpeta de su módulo. Si el archivo principal de su módulo no se llama index.js, no podrárequire
hacerlo.Descubierto al convertir un
browserify
módulo basado en unrequire
módulo compatible con CommonJS;browserify
no le importaba elmain
campo faltante , por lo que el error pasó desapercibido.fuente
Especifique la ruta a la carpeta del restler, que estará dentro de la carpeta node_modules como: var rest = require ('./ node_modules / restler');
Esto funcionó para mí.
fuente
Si está utilizando el mecanografiado y obtiene un error después de instalar todos los módulos de nodo, elimínelo
package-lock.json
. Y luego correnpm install
.fuente
CONSEJO PRO:
Este error me sucedió, mientras luchaba contra la fatiga y la enfermedad leve, porque escribí en
node blah
lugar denpm blah
.¡El mensaje de error recibido no estaba lo suficientemente enojado como para alertarme de mi propia locura!
fuente
Me enfrenté al mismo problema cuando alguien más en el equipo actualizó
package.json
SVN. Simplemente eliminar elnode_modules
directorio no ayudó. Cómo resolví el problema es:¡Espero que esto ayude a alguien!
fuente
npm install
todo está bien nuevamente.package.json
¿cómo sabe NPM qué instalar?Puedo agregar un lugar más para verificar; el paquete que intentaba usar era otro de mis propios paquetes que había publicado en un repositorio privado de NPM. Había olvidado configurar la propiedad 'main' en el package.json correctamente. Entonces, el paquete estaba allí en la carpeta node_modules del paquete consumidor, pero estaba obteniendo "no se puede encontrar el módulo". Me tomó unos minutos darme cuenta de mi error. :-(
fuente
En mi caso,
UNMET PEER DEPENDENCY redux@^3.0.0
causé este mensaje de error, míralos todos e instala los módulos faltantes nuevamente usando --savefuente
Eliminar el nodo / npm y luego reinstalar la versión estable (no la última) funcionó para mí.
fuente
En Appsome Solutions tuvimos el mismo problema con nuestra configuración de proyecto de mecanografiado y lo agregamos
"moduleResolution": "node",
en un tsconfig.json lo resolvió.fuente
Estaba tratando de publicar mi propio paquete y luego incluirlo en otro proyecto. Tuve ese problema debido a cómo he construido el primer módulo. Estoy usando la exportación ES2015 para crear el módulo, por ejemplo, digamos que el módulo se ve así:
Después de compilar con Babel y antes de ser publicado:
Entonces, después
npm install module-name
de otro proyecto (ninguno ES2015) tuve que hacervar hello = require('module-name').default;
Para realmente tener el paquete importado.
¡Espero que ayude!
fuente
Encontré este problema al usar
webpack
conwebpack-dev-middleware
.Había convertido un solo archivo en una carpeta .
El observador parecía no ver la nueva carpeta y ahora faltaba el módulo.
Se solucionó reiniciando el proceso.
fuente
Acabo de encontrar un escenario inusual que puede ser útil para alguien y es una especie de arenque rojo.
También recibí el error No se puede encontrar el módulo, pero extrañamente todo funcionó perfectamente en mi entorno local Node.js (alojado en Mac). Este problema solo apareció cuando el código se implementó en nuestro servidor Linux.
Bueno ... resultó ser un error tipográfico que (aparentemente) la instalación de Node.js basada en Mac estaba perfectamente feliz de ignorar.
La inclusión se veía así:
Pero el archivo real se llamaba "s3Uploader.class.js"
Observe la diferencia de mayúsculas y minúsculas en la 's' vs. 'S' entre el código y el nombre del archivo.
Entonces, en la extraña posibilidad de que ninguna de las otras soluciones aquí resuelvan su problema, ¡verifique tres veces que no esté confundiendo los caracteres en su nombre de archivo incluido! :)
y DUH!
fuente
Tal vez, como yo, configuró 'view engine' en express para un motor que no existe, o trató de usar un motor de plantillas no registrado. Asegúrate de usar:
app.engine('engine name',engine) app.set('view engine','engine name')
fuente
Instale la nueva CLI v3 (npm install -g ionic @ latest).
Si este problema sigue siendo un problema en CLI v3. ¡Gracias!
fuente
Si el paquete se instaló correctamente, vaya a su carpeta node_modules y luego verifique el archivo y la ruta. Luego importar. Espero que esto ayude.
fuente
En primer lugar, sí, una parte de mi respuesta definitivamente es útil para resolver el error que publica OP. En segundo lugar, después de intentar el siguiente paso, me enfrenté a un par de otros errores y, por lo tanto, también escribí la solución de esos errores.
(Psst! No estoy seguro de si he ayudado con éxito a resolver el error anterior, o si he roto alguna regla o formato de respuesta, pero me enfrenté al error anterior y a algunos otros y me llevó mucho tiempo encontrarlo las soluciones adecuadas para esos errores. Estoy escribiendo la solución completa porque, en caso de que alguien más también se enfrente a estos errores, entonces con suerte obtendrá una solución aquí).
Entonces, agregando y elaborando la respuesta proporcionada por PrashanthiDevi , y también agregando mi experiencia personal, aquí está:
Soy nuevo en toda la parte de e2e y pruebas unitarias. Empecé a investigar esta parte desde el transportador . Ahora ya tenía los archivos en los que se escribieron las pruebas, pero tuve que ejecutar las pruebas.
Ya había instalado todos los softwares y herramientas necesarios, pero cuando ejecuté inicialmente el código para ejecutar las pruebas,
gulp itest
recibí este error 'No se puede encontrar el módulo' . Después de pasar por muchas preguntas diferentes sobre SO, encontré una respuesta que pensé que podría ayudar a encontrar una solución.La persona había sugerido ejecutar el comando
npm install
en mi carpeta de proyecto.La razón para hacer esto fue actualizar la carpeta de módulos de nodo , dentro de nuestra carpeta de proyecto, con todos los archivos y dependencias necesarios y necesarios.
(La parte a continuación puede ser irrelevante con esta pregunta, pero podría ser útil si alguien se encuentra con la misma situación que enfrenté).
El paso anterior seguramente resolvió mi error anterior, ¡pero arrojó uno nuevo! Esta vez el error es
Could not find chromedriver at '..\node_modules\protractor\selenium\chromedriver'
.Sin embargo, la solución de este error fue bastante tonta (y divertida) para mí. Ya tenía el archivo chromedriver en mi carpeta de selenio . Pero, resulta que el error anterior se produjo porque mis archivos de chromedriver estaban dentro de la carpeta de selenio y no dentro de la carpeta de chromedriver . Por lo tanto, ¡crear una carpeta de chromedriver y copiar los archivos de chromedriver allí resolvió mi problema!
Además, para el error: Se agotó el tiempo de espera esperando el Servidor WebDriver , podría agregar esta línea de código al archivo conf.js dentro
exports.config{}
:seleniumAddress: 'http://localhost:8080/'
¡Espero que esto ayude!
fuente
Obtuve la solución simple para resolver este problema.
Simplemente elimine C: \ Users \ UserName \ AppData \ Roaming \ npm \
y luego instalar el nodo.
Ahora su problema será resuelto.
fuente
Ejecute solo el siguiente comando:
Instalará todos los módulos necesarios en la
node_modules
carpeta.fuente
Ese trabajo para mí.
fuente
Cambie el directorio y señale su carpeta de proyecto actual y luego "npm install". .
Esto instalará todas las dependencias y módulos en su carpeta de proyecto.
fuente
npm install
en el directorio correcto. No hay nada tan negativo al respecto