Instalación global de NPM “no se puede encontrar el módulo”

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. (/usr/local/lib/node_modules/wisp/wisp:12:10) at Object. (/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 ", "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.

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 npm@1.1.45 npm info using node@v0.8.4 [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.

agregue esto al comienzo de prog (mac):

module.paths.push('/usr/local/lib/node_modules');

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á)

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 🙂

Recibí el error del módulo “optimista” y acabo de hacer “instalación npm” para resolverlo. pasó el error

https://github.com/mbloch/mapshaper/issues/12

$ vim /etc/profile.d/nodejs.sh

 NODE_PATH=/usr/lib/nodejs:/usr/lib/node_modules:/usr/share/javascript export NODE_PATH="$NODE_PATH" 

Tuve este problema para request-promise . En mi caso, reemplazando:

 npm install request-promise --global 

con

 npm install request-promise --cli 

trabajado ( fuente )

Además, intente configurar la variable de entorno

 NODE_PATH=%AppData%\npm\node_modules 

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.

En Windows, si acabas de hacer una instalación limpia y obtienes esto, necesitas volar tu npm caché en \ AppData \ Roaming

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 

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 establecer NODE_PATH=/usr/lib64/node_modules

Ambos funcionaron. Estoy usando OpenSUSE 42.1 y el paquete nodejs desde el repository de actualizaciones. La versión es 4.4.5.

Hice esto de manera simple …

  1. Desinstalar nodo del panel de control [Windows 7]
  2. Instalar nodo nuevamente
  3. Instalar el transportador npm install --global --verbose protractor
    Actualizar el administrador del controlador web.

funciona bien para mí

Espero que esto te ayude….

Tuve el mismo error que el OP, pero al hojear los registros pude ver que sh: node: command not found .

Resulta que el progtwig / 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 .

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 y npm_cache en C:\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í como NODE_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 usuarios de Mac es mejor utilizar la instalación manual:

Para minimizar la posibilidad de errores de permisos, puede configurar npm para usar un directorio diferente. En este ejemplo, será un directorio oculto en su carpeta de inicio.

  1. Haga una copia de respaldo de su computadora antes de comenzar.

  2. Haga un directorio para instalaciones globales:

    mkdir ~ / .npm-global

  3. Configure npm para usar la nueva ruta del directorio:

    npm config set prefijo ‘~ / .npm-global’

  4. Abra o cree un archivo ~ / .profile y agregue esta línea:

    PATH de exportación = ~ / .npm-global / bin: $ PATH

  5. De vuelta en la línea de comando, actualice las variables de su sistema:

    fuente ~ / .profile

  6. Prueba: descargue un paquete globalmente sin usar sudo.

    npm install -g jshint

En lugar de los pasos 2 a 4, puede usar la variable ENV correspondiente (por ejemplo, si no desea modificar ~ / .profile):

 NPM_CONFIG_PREFIX=~/.npm-global 

Referencia: https://docs.npmjs.com/getting-started/fixing-npm-permissions

Tuve que agregar C: \ Users \ {Username} \ AppData \ Roaming \ npm a mis variables env y luego pude instalar cosas.