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

知道怎么解决吗?


当前回答

确保你只安装了一个版本的NodeJS。试试这两个:

node --version
sudo node --version

我最初从源代码安装NodeJS,但它是不正确的版本,并使用nvm“升级”到最新版本,它不会删除任何以前的版本,只在/root/.nvm/versions/…目录中。所以sudo node仍然指向以前的版本,而node指向更新的版本。

其他回答

这是因为您当前更改了您的node js版本, 只需在项目的终端中运行

$ rm -rf node_modules/bcrypt

然后重新安装

$ npm install

你可以开始了。好吧

我来这里是因为我在vscode中得到这个关于quokka.js ext的错误。

我的解决方案: (在MAC上通过终端)

1-我去~/.quokka

2-我运行nano config.json

3-我从配置中复制了代码。Json放到一个单独的文件中

4-我删除了config.json中的代码

5-我停下来,重新启动短尾矮袋鼠。

6-一旦我确认短尾矮袋鼠工作没有错误,我删除配置。Json文件代码。

你可以看到这个链接

检查节点版本是否正确。使用 NODE_MODULE_VERSION 51表示节点版本为nodejs v7。NODE_MODULE_VERSION 57意味着您需要将节点升级到v8。X,你需要升级你的节点。然后你需要运行NPM rebuild命令来重建你的项目

简单地运行:

NPM卸载bcrypt

紧随其后的是:

NPM install bcrypt(或者NPM install,如果bcrypt在你的包中被声明为依赖项)。json文件)

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

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

cd node_modules/bcrypt
node-pre-gyp rebuild

一切都按照预期进行。

希望这能有所帮助