我正在终端上运行一个节点应用程序。最近已经升级到节点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实例上编译的问题

其他回答

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

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

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

结果我的问题是用户错误:确保你正在运行的节点版本与你在运行npm install或yarn时使用的是相同的。

我使用NVM对节点进行版本控制,并通过终端运行yarn,但我的IDE在运行时设置为使用旧版本的节点,并抛出上面的错误。在运行配置中匹配我的IDE的节点版本到node——version修复了这个问题。

我在grpc模块中遇到了同样的问题,在我的情况下,我正在使用电子,并在env变量“export npm_config_target=1.2.3”中设置了错误的电子版本,将其设置为我正在使用的电子版本,解决了我的问题。希望这能帮助那些设置env变量的人(https://electronjs.org/docs/tutorial/using-native-node-modules#the-npm-way)

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

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

cd node_modules/bcrypt
node-pre-gyp rebuild

一切都按照预期进行。

希望这能有所帮助

运行NPM config set python python2.7,再运行NPM install, party is on。