Estoy ejecutando una aplicación de nodo en la terminal. Recientemente me actualicé al nodo v8.5.0, pero recibo este error:
Error: The module '/tidee/tidee-au/packages/tidee-au-server/node_modules/bcrypt/lib/binding/bcrypt_lib.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 51. This version of Node.js requires
NODE_MODULE_VERSION 57. Please try re-compiling or re-installing
the module (for instance, using `npm rebuild` or `npm install`).
at Object.Module._extensions..node (module.js:653:18)
at Module.load (module.js:545:32)
at tryModuleLoad (module.js:508:12)
at Function.Module._load (module.js:500:3)
at Module.require (module.js:568:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/tidee/tidee-au/packages/tidee-au-server/node_modules/bcrypt/bcrypt.js:6:16)
at Module._compile (module.js:624:30)
at Module._extensions..js (module.js:635:10)
at Object.require.extensions.(anonymous function) [as .js] (/tidee/tidee-au/packages/tidee-au-server/node_modules/babel-register/lib/node.js:152:7)
at Module.load (module.js:545:32)
at tryModuleLoad (module.js:508:12)
at Function.Module._load (module.js:500:3)
at Module.require (module.js:568:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/tidee/tidee-au/packages/tidee-au-server/server/helpers/encryptPass.js:1:16)
Alguna idea de como resolver esto?
node.js
npm
version
node-modules
JoeTidee
fuente
fuente
Respuestas:
Debe eliminar la carpeta del módulo (
bcrypt
) de lanode_modules
carpeta y volver a instalarla, use los siguientes comandos:fuente
zmq
paquete, y reconstruirlo o eliminarlo ynpm installing
todo de nuevo no ayuda. Siempre el mismo problema.rm -rf node_modules
. Borre el caché npm:npm cache clear
elimine package-lock.json o npm-shrinkwrap.json. Y solo después de esa carreranpm i
.npm cache clear
, los otros comandos lo hicieronTuve el mismo problema y nada de lo mencionado aquí funcionó para mí. Esto es lo que funcionó para mí:
main.js
archivo ejecutado por electron. (Esta parecía ser la primera parte importante para mí)npm i -D electron-rebuild
para agregar el paquete de reconstrucción electrónicanode-modules
carpeta, así como elpackages-lock.json
archivo.npm i
para instalar todos los módulos../node_modules/.bin/electron-rebuild
(.\node_modules\.bin\electron-rebuild.cmd
para Windows) para reconstruir todoEs muy importante ejecutar
./node_modules/.bin/electron-rebuild
directamente después de lonpm i
contrario, no funcionó en mi mac.Espero poder ayudar a algunas almas frustradas.
fuente
Tienes que reconstruir el paquete y decirle a npm que actualice también es binario . Tratar:
@robertklep respondió una pregunta relativa con este comando, mira .
Solo la reconstrucción no ha resuelto mi problema, esto funciona bien en mi aplicación.
¡Espero eso ayude!
fuente
Simplemente ejecute:
npm uninstall bcrypt
Seguido por:
npm install bcrypt
(onpm install
, si bcrypt se declara como dependencia en su archivo package.json )fuente
puedes ver este enlace
para verificar su nodo verison a la derecha. usar NODE_MODULE_VERSION 51 significa que la versión de su nodo es nodejs v7.x, requiere NODE_MODULE_VERSION 57 significa que necesita actualizar su nodo a v8.x, por lo que necesita actualizar su nodo. y luego necesitas ejecutar el
npm rebuild
comando para reconstruir tu proyectofuente
11/stable
a8/stable
con$ snap refresh node --channel=8/stable
Ubuntu. Después de eso lo hizo$ npm rebuild
.NODE_MODULE_VERSION 51
significa que el.node
archivo se compila contra alguna versión de nodo usando NODE_MODULE_VERSION 51. Y el usuario está usando una versión de nodo usando 57, por lo que no puede usarlo directamente. El usuario debe reconstruir la compilación.Lo más probable es que tenga este problema debido al paquete-lock.json. De alguna manera, parece que le impide volver a compilar o reconstruir sus dependencias, incluso si ejecuta explícitamente
npm rebuild
. Ejecuté todo lo siguiente para solucionarlo:fuente
Asegúrese de tener solo una versión de NodeJS instalada. Prueba estos dos:
Inicialmente instalé NodeJS desde el código fuente, pero fue la versión incorrecta y 'actualicé' a la última versión usando
nvm
, lo que no elimina ninguna versión anterior, y solo instala la versión deseada en el/root/.nvm/versions/...
directorio. Entoncessudo node
todavía apuntaba a la versión anterior, mientrasnode
apuntaba a la versión más nueva.fuente
Recibí el mismo error pero estaba tratando de ejecutar una aplicación de nodo usando un contenedor Docker.
Lo arreglé agregando un archivo .dockerignore para ignorar el directorio node_modules para asegurarme de que cuando se construye la imagen de Docker, se compilan los paquetes nativos para la imagen que quería (Alpine) en lugar de copiar sobre los node_modules compilados para mi host (Debian) .
fuente
node_modules/
ypackage-lock.json
Resulta que mi problema fue un error del usuario: asegúrese de que la versión del nodo que está utilizando para ejecutar sea la misma que utiliza cuando ejecuta una instalación o hilo npm.
Utilizo NVM para versionar el nodo y estaba ejecutando hilo a través de un terminal, pero mi IDE estaba configurado para usar una versión anterior del nodo cuando se ejecutaba y arrojaba el error anterior. Hacer coincidir la versión de nodo de mi IDE en la configuración de ejecución con el nodo --version solucionó el problema.
fuente
Tuve un problema similar con robotjs. Había un código obsoleto que requería el nodo v11, pero ya había compilado el código electrónico en la v12. Entonces obtuve básicamente el mismo error. Nada funcionó aquí, ya que básicamente estaba tratando de reconstruir el electrón y mis otras dependencias en el nodo v11 desde la v12.
Esto es lo que hice (parte de esto se basa en la respuesta de Chitzui, crédito donde se debe):
npm init
para reiniciar el paquete, luego faltan datos con el antiguo paquete respaldado.jsonnpm i
Espero que esto ayude.
fuente
Para los módulos Electron, instale la reconstrucción electrónica.
Especifique la misma versión que instaló en el directorio actual
Es posible que tenga esta experiencia en la que una construcción de nodo-gyp estándar informaría como 64, luego una reconstrucción electrónica básica informaría 76, no hasta que agregue -v con la versión exacta que se encuentra con la versión real 80 (para 9.0.0-beta. 6)
fuente
Eliminé la carpeta node_modules y la ejecuté
npm install
y mi aplicación se inició sin ningún error.fuente
Recibí este error al ejecutar mi aplicación con systemd:
Pero estaba usando una versión diferente para
npm install
en el shell:Si esta es su configuración, puede codificar la versión del nodo en el archivo de servicio o seguir una solución como esta .
fuente
Después de probar cosas diferentes. Esto funcionó.
Elimine la carpeta de módulos de nodo y ejecute
fuente
Enfrenté el mismo problema con el módulo grpc y en mi caso, estaba usando electron y configuré una versión electrónica incorrecta en la variable env "export npm_config_target = 1.2.3", configurándola en la versión electrónica que estoy usando resolvió el problema en mi fin. Espero que esto ayude a alguien que establece las variables env como se indica aquí ( https://electronjs.org/docs/tutorial/using-native-node-modules#the-npm-way )
fuente
Puede eliminar bcrypt por completo e instalar bcryptjs. Es ~ 30% más lento, pero no tiene dependencias, por lo que no le cuesta instalarlo.
Lo hemos instalado con éxito para nuestras aplicaciones. Tuvimos problemas con bcrypt que no se compilaba en instancias de AWS para el Nodo v8.x
fuente
Potencialmente, la inconsistencia de las versiones del nodo JS es lo que causa el problema. Como se indica en la documentación . Asegúrese de usar uno de los lanzamientos de lts. Por ejemplo, especifique esto en su Dockerfile:
fuente
Verifique la versión del nodo que está utilizando, puede ser una falta de coincidencia entre lo que se espera.
fuente
Tuve el mismo problema y ninguna de estas soluciones funcionó y no sé por qué, en el pasado funcionaron para mí por problemas similares.
De todos modos para resolver el problema, acabo de reconstruir manualmente el paquete usando node-pre-gyp
Y todo funcionó como se esperaba.
Espero que esto ayude
fuente
Acabo de recibir este error al ejecutar kadence, el script "kadence" instalado comprueba primero nodejs y solo ejecuta node si no hay nodejs. Tengo la última versión del nodo vinculada a mi directorio ~ / bin pero nodejs ejecuta una versión anterior que olvidé desinstalar pero que nunca causó problemas hasta ahora.
Entonces, las personas con este problema podrían verificar si node y nodejs realmente ejecutan la misma versión del nodo ...
fuente
En mi caso, estaba en el proxy de mi oficina, que estaba omitiendo algunos de los paquetes. Cuando salí del proxy de mi oficina e intenté hacerlo
npm install
funcionó. Quizás esto ayude a alguien.Pero me llevó varias horas identificar que esa era la razón.
fuente
En mi caso, estaba corriendo en
nodejs
lugar denode
. Debido anodejs
ser instalado por el administrador de paquetes:fuente
corre
npm config set python python2.7
y corre denpm install
nuevo la fiesta está en marcha .fuente
solo necesita ejecutar los siguientes comandos:
y finalmente
no olvides
yarn add electron-rebuild
si no existe en tus dependencias.fuente
He encontrado este error dos veces en una aplicación electrónica y resultó que el problema era que algunos módulos deben usarse desde el proceso principal en lugar del proceso de renderizado. El error ocurrió usando pdf2json y también node-canvas. Mover el código que requería esos módulos de index.htm (el proceso de renderizado) a main.js (el proceso principal) corrigió el error y la aplicación se reconstruyó y ejecutó perfectamente. Esto no solucionará el problema en todos los casos, pero es lo primero que debe verificar si está escribiendo una aplicación electrónica y se encuentra con este error.
fuente
Esto es lo que funcionó para mí. Estoy usando un módulo de nodo en bucle con Electron Js y enfrenté este problema. Después de probar muchas cosas, el siguiente trabajo me funcionó.
En su archivo package.json en los scripts, agregue las siguientes líneas:
Y luego ejecuta el siguiente comando
npm run rebuild
fuente