Недопустимый заголовок ELF, вызванный bcrypt

я последовал этому решению:

bcrypt ломает мое приложение meteor, как его исправить?

но я все еще получаю эту ошибку:

    /home/kaleobox/bundle/programs/server/node_modules/fibers/future.js:245
                                                    throw(ex);
                                                          ^
    Error: /home/kaleobox/bundle/programs/server/npm/npm-bcrypt/node_modules/bcrypt/build/Release/bcrypt_lib.node: invalid ELF header
        at Module.load (module.js:356:32)
        at Function.Module._load (module.js:312:12)
        at Module.require (module.js:364:17)
        at require (module.js:380:17)
        at bindings (/home/kaleobox/bundle/programs/server/npm/npm-bcrypt/node_modules/bcrypt/node_modules/bindings/bindings.js:74:15)
        at Object.<anonymous> (/home/kaleobox/bundle/programs/server/npm/npm-bcrypt/node_modules/bcrypt/bcrypt.js:3:35)
        at Module._compile (module.js:456:26)
        at Object.Module._extensions..js (module.js:474:10)
        at Module.load (module.js:356:32)
        at Function.Module._load (module.js:312:12)

зашел в /home/kaleobox/bundle/programs/server/node_modules и так:

rm -R /home/kaleobox/bundle/programs/server/node_modules/bcrypt

затем

npm install bcrypt

но ошибка выше сохраняется. Линия

/home/kaleobox/bundle/programs/server/npm/npm-bcrypt/node_modules/bcrypt/build/Release/bcrypt_lib.node: invalid ELF header

говорит мне, что мне, возможно, придется удалить и переустановить bcrypt в этом втором месте?

3 ответов


вы должны переустановить bcrypt из

/ home / kaleobox / bundle / программы / сервер/npm/npm-bcrypt / node-modules

вместо

/ home/kaleobox/bundle/программы/сервер / node_modules


Я решил эту проблему, переустановив пакет bcrypt в приведенном ниже каталоге:

  • доступ к этому каталогу:

    /my_app/programs/server/npm/npm-bcrypt/

  • затем запустите npm install bcrypt

  • запустите приложение снова. Все должно быть хорошо. :)


как показывает ответ @lingxiao-sun, вы мая найдите, что копирование bcrypt на /home/kaleobox/bundle/programs/server/node_modules на /home/kaleobox/bundle/programs/server/npm/npm-bcrypt/node-modules исправит эту проблему.

это возможно, потому что bcrypt на <your project>/bundle/programs/server/node_modules будет построен/установлен локально на хост-машине, тогда как bcrypt на /server/npm/npm-bcrypt/node-modules/ скорее всего, будет от источника/машины сборки, и если эти среды отличаются, это может вызвать проблемы из-за конкретных двоичных файлов, необходимых для каждой среды.