node.js - last - Instalación global de NPM "no se puede encontrar el módulo"
npm last version (14)
Escribí un módulo que publiqué a npm hace un momento (https://npmjs.org/package/wisp)
Por lo tanto, se instala bien desde la línea de comandos:
$ npm i -g wisp
Sin embargo, cuando lo ejecuto desde la línea de comando, sigo recibiendo un error de que el 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 que agrega el ejecutable a bin y los node_modules en ese directorio están vacíos. No tengo idea de cómo resolver esto.
$ vim /etc/profile.d/nodejs.sh
NODE_PATH=/usr/lib/nodejs:/usr/lib/node_modules:/usr/share/javascript
export NODE_PATH="$NODE_PATH"
En Windows, si acabas de hacer una instalación limpia y obtienes esto, necesitas volar tu npm caché en / AppData / Roaming
En mi caso, tanto el node
como el npm
estaban en la misma ruta ( /usr/bin
). NODE_PATH
estaba vacío, por lo que npm
colocó los módulos globales en /usr/lib/node_modules
donde require(...)
encontrarlos con éxito. La única excepción fue el módulo npm
, que venía con el paquete nodejs. Como uso el sistema de 64 bits, se colocó en /usr/lib64/node_modules
. Aquí no es donde requieren (...) búsquedas en caso de que NODE_PATH
vacío y el nodo haya comenzado desde /usr/bin
. Entonces tuve dos opciones:
- link
/usr/lib64/node_modules/npm
a/usr/lib/node_modules/npm
- mover módulos de
/usr/lib/node_modules/*
a/usr/lib64/node_modules/
y establecerNODE_PATH=/usr/lib64/node_modules
Ambos funcionaron. Estoy usando OpenSUSE 42.1 y el paquete nodejs desde el repositorio de actualizaciones. La versión es 4.4.5.
Hice esto de manera simple ...
- Desinstalar nodo del panel de control [Windows 7]
- Instalar nodo nuevamente
- Instalar el transportador
npm install --global --verbose protractor
Actualizar el administrador del controlador web.
funciona bien para mí
Espero que esto te ayude....
Obtuve este error Error: Cannot find module ''number-is-nan''
mientras que el módulo existe realmente. Fue debido a una instalación incorrecta / incompleta de Node.js.
Para Windows, como lo sugieren otras respuestas, necesita una instalación limpia del Nodo :
- Desinstalar Node.js
- Elimine las dos carpetas
npm
ynpm_cache
enC:/Users/user/AppData/Roaming
- Reinicie Windows e instale Node.js
- Ejecute
npm init
o (npm init --yes
para configuración predeterminada ) - Establezca la variable de entorno de Windows para
NODE_PATH
. Esta ruta es donde se instalan sus paquetes. Probablemente sea algo así comoNODE_PATH = C:/Users/user/node_modules or C:/Users/user/AppData/Roaming/npm/node_modules
- Inicie una nueva consola de cmd y
npm
debería funcionar bien
Nota :
Pruebe los últimos puntos antes de reinstalar Node.js, podría ahorrarle algo de tiempo y evitar volver a instalar todos sus paquetes.
Para Windows, ¿desde Nodejs no se puede encontrar el módulo instalado en Windows? lo que funcionó para mí es ejecutar el enlace npm como en
npm link wisp
Para algunos (como yo) que nada más funcionó, prueba esto:
brew cleanup
brew link node
brew uninstall node
brew install node
Espero que ayude a alguien :)
Para cualquiera que se encuentre con esto, tuve este problema debido a mi instalación de npm
en una ubicación que no está en mi NODE_PATH
.
[root@uberneek ~]# which npm
/opt/bin/npm
[root@uberneek ~]# which node
/opt/bin/node
[root@uberneek ~]# echo $NODE_PATH
Mi NODE_PATH estaba vacía, y la ejecución de la npm install --global --verbose promised-io
mostró que se estaba instalando en /opt/lib/node_modules/promised-io
:
[root@uberneek ~]# npm install --global --verbose promised-io
npm info it worked if it ends with ok
npm verb cli [ ''/opt/bin/node'',
npm verb cli ''/opt/bin/npm'',
npm verb cli ''install'',
npm verb cli ''--global'',
npm verb cli ''--verbose'',
npm verb cli ''promised-io'' ]
npm info using [email protected]
npm info using [email protected]
[cut]
npm info build /opt/lib/node_modules/promised-io
npm verb from cache /opt/lib/node_modules/promised-io/package.json
npm verb linkStuff [ true, ''/opt/lib/node_modules'', true, ''/opt/lib/node_modules'' ]
[cut]
Mi script falla en require(''promised-io/promise'')
:
[neek@uberneek project]$ node buildscripts/stringsmerge.js
module.js:340
throw err;
^
Error: Cannot find module ''promised-io/promise''
at Function.Module._resolveFilename (module.js:338:15)
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 módulos instalados. La solución por ahora es señalar NODE_PATH en el directorio correcto:
export NODE_PATH=/opt/lib/node_modules
Mi require(''promised-io/promise'')
ahora tiene éxito.
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
Entonces, o bien tiene que 1) agregar el / usr / local / lib / node_module a NODE_PATH y exportarlo o 2) copiar los módulos de nodo instalados a / usr / local / lib / node. (Como se explica en el enlace para cargar el nodo del módulo buscará en esta ruta y funcionará)
Recibí el error del módulo "optimista" y acabo de hacer "instalación npm" para resolverlo. pasó el error
Tuve el mismo error que el OP, pero al hojear los registros pude ver que sh: node: command not found
.
Resulta que el programa / usr / bin / node (symlink) ya no está instalado con apt install nodejs
. Una vez enlazado simbólicamente /usr/bin/node'' to
nodejs ,
npm install -g @ angular / cli` fue exitosa.
La forma correcta de instalar esto en debian es apt install nodejs-legacy
.
Tuve el mismo problema en uno de los servidores de prueba con Ubuntu
en la root
. Luego creé un nuevo usuario usando useradd -m myuser
e instalé todo ( nvm
, node
, packages) como myuser
. Ahora está funcionando bien.
Tuve este problema para request-promise
. En mi caso, reemplazando:
npm install request-promise --global
con
npm install request-promise --cli
trabajado ( source )
Además, intente configurar la variable de entorno
NODE_PATH=%AppData%/npm/node_modules
agregue esto al comienzo de prog (mac):
module.paths.push(''/usr/local/lib/node_modules'');