Escribí un módulo que publiqué en npm hace un momento (https://npmjs.org/package/wisp)
Entonces se instala bien desde la línea de comando:
$ npm i -g wisp
Sin embargo, cuando lo ejecuto desde la línea de comandos, sigo recibiendo un error de que optimist no está instalado:
$ wisp
Error: Cannot find module 'optimist'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:362:17)
at require (module.js:378:17)
at Object.<anonymous> (/usr/local/lib/node_modules/wisp/wisp:12:10)
at Object.<anonymous> (/usr/local/lib/node_modules/wisp/wisp:96:4)
at Module._compile (module.js:449:26)
at Object.exports.run (/usr/local/lib/node_modules/coffee-script/lib/coffee-script/coffee-script.js:68:25)
at compileScript (/usr/local/lib/node_modules/coffee-script/lib/coffee-script/command.js:135:29)
at fs.stat.notSources.(anonymous function) (/usr/local/lib/node_modules/coffee-script/lib/coffee-script/command.js:110:18)
Sin embargo, he especificado en package.json como una dependencia:
{
"name": "wisp",
"author": "Brendan Scarvell <[email protected]>",
"version": "0.1.0",
"description": "Global nodejs file server",
"dependencies": {
"optimist": "~0.3.4"
},
"repository": "git://github.com/tehlulz/wisp",
"bin": {
"wisp" : "./wisp"
}
}
¿Alguien sabe qué hacer para que esto funcione? Sé que tiene que ver con la parte bin agregando el ejecutable a bin y los node_modules en ese directorio están vacíos. No tengo idea de cómo resolver esto.

./node_modules/wisp/wispque funciona bien.Respuestas:
Para cualquier otra persona que se encuentre con esto, tuve este problema debido a mi
npminstalación en una ubicación que no está en miNODE_PATH.Mi NODE_PATH estaba vacío y la ejecución
npm install --global --verbose promised-iomostró que se estaba instalando en/opt/lib/node_modules/promised-io:Mi script falla en
require('promised-io/promise'):Probablemente instalé node y npm desde la fuente usando
configure --prefix=/opt. No tengo idea de por qué esto los ha hecho incapaces de encontrar los módulos instalados. La solución por ahora es apuntar NODE_PATH al directorio correcto:Mi
require('promised-io/promise')ahora tiene éxito.fuente
export NODE_PATH=...configurarlo en el shell local para que se exportara a los comandos que se ejecutan en ese shell. Para que el cambio sea persistente o esté disponible para todos los shells, colóquelo en .profile o similar. El concepto en su conjunto es molestamente complejo para el novato, intente leer help.ubuntu.com/community/EnvironmentVariables . Para Windows, querrás cambiar a Linux. OK, solo bromeaba. Pruebe computerhope.com/issues/ch000549.htm o busque en google.open -a TextEdit ~/.bash_profileen Terminal, luego agregueexport NODE_PATH=/usr/local/lib/node_modulesal final del archivo. Reinicie la ventana de terminal. Ahora seecho $NODE_PATHdebe imprimir/usr/local/lib/node_modules.agregue esto al comienzo del programa (mac):
module.paths.push('/usr/local/lib/node_modules');fuente
os.environ.nodepath(algo en esta línea).Por defecto, el nodo no mira dentro del / usr / local / lib / node_module para cargar módulos globales. Consulte la carga del módulo explicada en http://nodejs.org/api/modules.html#modules_loading_from_the_global_folders
Por lo tanto, debe 1) agregar el / usr / local / lib / node_module a NODE_PATH y exportarlo o 2) copiar los módulos de nodo instalados en / usr / local / lib / node. (Como se explica en el enlace para cargar el nodo del módulo, buscará en esta ruta y funcionará)
fuente
Para algunos (como yo) que nada más funcionó, intente esto:
Espero que ayude a alguien :)
fuente
La siguiente solución genérica sería para cualquier módulo. Por ejemplo con
request-promise.Reemplazar
Con
trabajado ( fuente ) y también para
globalsyinheritsAdemás, intente configurar la variable de entorno
fuente
Recibí el error del módulo "optimista" y simplemente hice "npm install" para resolverlo. Pasó ese error.
https://github.com/mbloch/mapshaper/issues/12
fuente
$ vim /etc/profile.d/nodejs.sh
fuente
Para Windows, ¿ Nodejs no puede encontrar el módulo instalado en Windows? lo que funcionó para mí está ejecutando enlace npm como en
fuente
npm install wisp --save(sin la opción -g)Para usuarios de Mac, es mejor usar la instalación manual:
Referencia: https://docs.npmjs.com/getting-started/fixing-npm-permissions
fuente
Tenía el mismo problema en uno de los servidores de prueba que se ejecutan
Ubuntubajoroot. Entonces creado un nuevo usuario usandouseradd -m myusery todo instalado (nvm,node, paquetes) comomyuser. Ahora está funcionando bien.fuente
En Windows, si acaba de realizar una instalación limpia y obtiene esto, debe eliminar su caché npm en \ AppData \ Roaming
fuente
En mi caso ambos
nodeynpmestábamos en el mismo camino (/usr/bin). ElNODE_PATHestaba vacío, por lo que lanpmcoloca los módulos globales en/usr/lib/node_modulesdonderequire(...)encontrará con éxito. La única excepción fue elnpmmódulo, que vino con el paquete nodejs. Como estoy usando un sistema de 64 bits, se colocó en/usr/lib64/node_modules. Aquí no es donde se requieren (...) búsquedas en caso de vacíoNODE_PATHy el nodo comenzó desde/usr/bin. Entonces tenía dos opciones:/usr/lib64/node_modules/npma/usr/lib/node_modules/npm/usr/lib/node_modules/*a/usr/lib64/node_modules/y conjuntoNODE_PATH=/usr/lib64/node_modulesAmbos trabajaron. Estoy usando OpenSUSE 42.1 y el paquete nodejs del repositorio de actualizaciones. La versión es 4.4.5.
fuente
Hice esto de manera simple ...
npm install --global --verbose protractoradministrador de controladores web de actualización de transportador .
funciona bien para mi
Espero que esto te ayude....
fuente
Obtuve este error
Error: Cannot find module 'number-is-nan'mientras que el módulo realmente existe. Se debió a una instalación de Node.js incorrecta / incompleta.Para Windows, como lo sugieren otras respuestas, necesita una instalación limpia de Node :
npmynpm_cacheenC:\Users\user\AppData\Roamingnpm inito (npm init --yespara la configuración predeterminada )NODE_PATH. Esta ruta es donde están instalados sus paquetes. Probablemente sea algo comoNODE_PATH = C:\Users\user\node_modules or C:\Users\user\AppData\Roaming\npm\node_modulesnpmdebería funcionar bienNota :
Pruebe los últimos puntos antes de reinstalar Node.js, podría ahorrarle algo de tiempo y evitar reinstalar todos sus paquetes.
fuente
Acabo de resolver este problema del
axiosmódulo. Luego probé esto: ejecutarrm -rf node_modulesyyarn. Y funciona.fuente
Tuve el mismo error que el OP, pero pude ver a través de los registros
sh: node: command not found.Resulta que el programa / usr / bin / node (enlace simbólico) ya no está instalado con
apt install nodejs. Una vez que el enlace simbólico/usr/bin/node' tonodejs,npm instaló -g @ angular / cli` tuvo éxito.La forma correcta de instalar esto en Debian es
apt install nodejs-legacy.fuente
Tuve que agregar C: \ Users \ {Nombre de usuario} \ AppData \ Roaming \ npm a mis variables env y luego pude instalar cosas.
fuente