Estou executando um aplicativo de nó no terminal. Atualizei recentemente para o nó v8.5.0, mas estou recebendo este erro:
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)
Alguma idéia de como resolver isso?
node.js
npm
version
node-modules
JoeTidee
fonte
fonte
Respostas:
Você precisa remover a pasta do módulo (
bcrypt
) danode_modules
pasta e reinstalá-la, use os seguintes comandos:fonte
zmq
pacote, e reconstruí-lo ou excluí-lo enpm installing
tudo de novo não ajuda. Sempre o mesmo problema.rm -rf node_modules
. Limpar cache do npm:,npm cache clear
remova package-lock.json ou npm-shrinkwrap.json. E somente depois dessa corridanpm i
.npm cache clear
, os outros comandos o fizeramEu tive o mesmo problema e nada mencionado aqui funcionou para mim. Aqui está o que funcionou para mim:
main.js
arquivo que é executado por elétron. (esta parecia ser a primeira parte importante para mim)npm i -D electron-rebuild
para adicionar o pacote de reconstrução de elétronsnode-modules
pasta, bem como opackages-lock.json
arquivo.npm i
para instalar todos os módulos../node_modules/.bin/electron-rebuild
(.\node_modules\.bin\electron-rebuild.cmd
para Windows) para reconstruir tudoÉ muito importante executar
./node_modules/.bin/electron-rebuild
diretamente depois,npm i
caso contrário não funcionaria no meu mac.Espero poder ajudar algumas almas frustradas.
fonte
Você precisa reconstruir o pacote e pedir ao npm para atualizar o seu binário também . Experimentar:
@robertklep respondeu uma pergunta relativa com este comando, olhe .
Somente a reconstrução não resolveu meu problema, isso funciona bem no meu aplicativo.
Espero que ajude!
fonte
Basta executar:
npm uninstall bcrypt
Seguido por:
npm install bcrypt
(ounpm install
, se bcrypt for declarado como dependência no seu arquivo package.json )fonte
você pode ver este link
para verificar seu nó corretamente. usar NODE_MODULE_VERSION 51 significa que sua versão do nó é nodejs v7.x, requer NODE_MODULE_VERSION 57 significa que você precisa atualizar seu nó para a v8.x, portanto, precisa atualizar seu nó. e então você precisa executar o
npm rebuild
comando para reconstruir seu projetofonte
11/stable
para8/stable
com$ snap refresh node --channel=8/stable
no Ubuntu. Depois disso$ npm rebuild
.NODE_MODULE_VERSION 51
significa que o.node
arquivo é compilado com base em alguma versão de nó usando NODE_MODULE_VERSION 51. E o usuário está usando uma versão de nó usando 57, portanto, não pode usá-lo diretamente. O usuário deve reconstruir a compilação.Provavelmente você tem esse problema devido ao package-lock.json. De alguma forma, parece impedi-lo de recompilar ou reconstruir suas dependências, mesmo se você executar explicitamente
npm rebuild
. Executei o seguinte para corrigi-lo:fonte
Certifique-se de ter apenas uma versão do NodeJS instalada. Experimente estes dois:
Inicialmente, instalei o NodeJS a partir da fonte, mas era a versão incorreta e 'atualizei' para a versão mais recente
nvm
, o que não remove nenhuma versão anterior e apenas instala a versão desejada no/root/.nvm/versions/...
diretório. Então,sudo node
ainda estava apontando para a versão anterior, enquantonode
apontava para a versão mais recente.fonte
Eu recebi o mesmo erro, mas estava tentando executar um aplicativo de nó usando um contêiner do Docker.
Corrigi-o adicionando um arquivo .dockerignore para ignorar o diretório node_modules para garantir que, quando a imagem do docker for criada, ele construa os pacotes nativos da imagem que eu queria (Alpine) em vez de copiar os node_modules compilados para o meu host (Debian) .
fonte
node_modules/
epackage-lock.json
Acontece que meu problema foi erro do usuário: verifique se a versão do nó que você está usando para execução é a mesma que você está usando ao executar uma instalação ou fio npm.
Eu uso o NVM para o nó de controle de versão e estava executando o fio através de um terminal, mas meu IDE foi configurado para usar uma versão mais antiga do nó ao executar e estava lançando o erro acima. A correspondência da versão do nó do IDE na execução da configuração com o nó --version corrigiu o problema.
fonte
Eu tive um problema semelhante com o robotjs. Havia algum código obsoleto que exigia o nó v11, mas eu já havia compilado o código eletrônico na v12. Então, eu tenho basicamente o mesmo erro. Nada aqui funcionou, pois eu estava basicamente tentando reconstruir elétrons e minhas outras dependências no nó v11 da v12.
Aqui está o que eu fiz (parte disso é baseada na resposta do chitzui, crédito onde o crédito é devido):
npm init
para reiniciar o pacote e, em seguida, perdendo dados com o antigo pacote de backup.jsonnpm i
Espero que isto ajude.
fonte
Para módulos Electron, instale electron-reconstruir.
Especifique a mesma versão que você instalou no diretório atual
Você pode ter essa experiência em que uma compilação node-gyp padrão reportaria como 64 e, em seguida, uma reconstrução básica de elétrons reportaria 76, até que você adicione -v com a versão exata, ela colide com a versão real 80 (para 9.0.0-beta. 6)
fonte
Excluí a pasta node_modules e executei
npm install
e meu aplicativo foi iniciado sem erros.fonte
Eu recebi este erro ao executar meu aplicativo com systemd:
Mas eu estava usando uma versão diferente para
npm install
no shell:Se essa for sua configuração, você pode codificar a versão do nó no arquivo de serviço ou seguir uma solução alternativa como esta .
fonte
Depois de tentar coisas diferentes. Isso funcionou.
Exclua a pasta de módulos do nó e execute
fonte
Eu enfrentei o mesmo problema com o módulo grpc e, no meu caso, eu estava usando electron e defini uma versão eletrônica incorreta na variável env "export npm_config_target = 1.2.3", configurando-a para a versão eletrônica que estou usando, resolveu o problema em meu fim. Espero que isso ajude alguém que defina variáveis env como indicado aqui ( https://electronjs.org/docs/tutorial/using-native-node-modules#the-npm-way )
fonte
Você pode remover completamente o bcrypt e instalar o bcryptjs. É ~ 30% mais lento, mas não possui dependências, portanto, não é necessário instalá-lo.
Instalamos com sucesso para nossos aplicativos. Tivemos problemas com o bcrypt não compilando nas instâncias da AWS para o Node v8.x
fonte
Potencialmente, a inconsistência das versões JS do nó é o que causa o problema. Conforme indicado na documentação . Certifique-se de usar uma das versões lts. Por exemplo, especifique isso em seu Dockerfile:
fonte
Verifique a versão do nó que você está usando, pode ser uma incompatibilidade entre o que é esperado.
fonte
Eu tive o mesmo problema e nenhuma dessas soluções funcionou e não sei por que, elas funcionaram para mim no passado para problemas semelhantes.
De qualquer forma, para resolver o problema, acabei de reconstruir manualmente o pacote usando o node-pre-gyp
E tudo funcionou como esperado.
Espero que isto ajude
fonte
Eu só tenho esse erro executando kadence os instalados "Kadence" script verifica para nodejs primeiro e único é executado nó se não houver nodejs. Eu tenho a versão mais recente do nó vinculada ao meu diretório ~ / bin, mas o nodejs executa uma versão mais antiga que eu esqueci de desinstalar, mas que nunca causou problemas até agora.
Portanto, pessoas com esse problema podem verificar se o node e o nodejs realmente executam a mesma versão do nó ...
fonte
No meu caso, eu estava no proxy do meu escritório, que estava pulando alguns dos pacotes. Quando saí do proxy do meu escritório e tentei fazê-
npm install
lo funcionou. Talvez isso ajude alguém.Mas levei várias horas para identificar que esse era o motivo.
fonte
No meu caso, eu estava correndo em
nodejs
vez denode
. Devido ànodejs
instalação do gerenciador de pacotes:fonte
correr
npm config set python python2.7
e corrernpm install
novamente a festa está ligada.fonte
você precisa apenas executar os comandos abaixo:
e finalmente
não esqueça
yarn add electron-rebuild
se não existir em suas dependências.fonte
Eu encontrei esse erro duas vezes em um aplicativo de elétrons e o problema foi que alguns módulos precisam ser usados no processo principal, e não no processo de renderização. O erro ocorreu usando o pdf2json e também o node-canvas. Mover o código que exigia esses módulos de index.htm (o processo de renderização) para main.js (o processo principal) corrigiu o erro e o aplicativo foi reconstruído e executado perfeitamente. Isso não resolverá o problema em todos os casos, mas é a primeira coisa a verificar se você está escrevendo um aplicativo de elétrons e se deparar com esse erro.
fonte
Aqui está o que funcionou para mim. Estou usando o módulo de nó em loop-back com Js de elétron e enfrentou esse problema. Depois de tentar muitas coisas a seguir funcionou para mim.
No seu arquivo package.json nos scripts, adicione as seguintes linhas:
E então execute o seguinte comando
npm run rebuild
fonte