我正在终端上运行一个节点应用程序。最近已经升级到节点v8.5.0,但我得到这个错误:

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)

知道怎么解决吗?


当前回答

您可以完全删除bcrypt并安装bcryptjs。它慢了大约30%,但是没有依赖,所以安装它并不痛苦。

npm i -S bcryptjs && npm uninstall -S bcrypt

我们已经成功地为我们的应用程序安装了它。我们遇到了bcrypt无法在Node v8.x的AWS实例上编译的问题

其他回答

我遇到了同样的问题,这些解决方案都不起作用,我不知道为什么,它们在过去的类似问题上对我有效。

无论如何,为了解决这个问题,我只是使用node-pre-gyp手动重新构建包

cd node_modules/bcrypt
node-pre-gyp rebuild

一切都按照预期进行。

希望这能有所帮助

我得到了同样的错误,但我试图运行一个节点应用程序使用Docker容器。

我通过添加一个.dockerignore文件来忽略node_modules目录来修复它,以确保当构建docker映像时,它为我想要的映像(Alpine)构建本机包,而不是复制为我的主机(Debian)编译的node_modules。

I have hit this error twice in an electron app and it turned out the problem was that some modules need to be used from the main process rather than the render process. The error occurred using pdf2json and also node-canvas. Moving the code that required those modules from index.htm (the render process) to main.js (the main process) fixed the error and the app rebuilt and ran perfectly. This will not fix the problem in all cases but it is the first thing to check if you are writing an electron app and run into this error.

我删除了node_modules文件夹,并运行npm install,我的应用程序启动没有任何错误。

我刚刚得到这个错误运行kadence安装的“kadence”脚本首先检查nodejs,如果没有nodejs只运行node。我把最新版本的node链接到我的~/bin目录中,但nodejs运行的是一个我忘记卸载的旧版本,但直到现在才出现问题。

所以有这个问题的人可能会检查node和nodejs是否实际运行相同版本的node…