【问题标题】:node.js issue with brcypt on version 12.14.0版本 12.14.0 上的 brcypt 的 node.js 问题
【发布时间】:2020-04-25 12:26:41
【问题描述】:

安装/使用 node.js 12.14.0 时出现 bcrypt 兼容性错误(为什么 12.14.0 .....这是 AWS 当前支持的最高版本)。

这里是错误消息,知道如何解决这个问题。

这是完整的设置场景

  1. 使用 ubuntu 18.*
  2. 使用 nvm 删除了除 12.14.0 之外的所有节点版本
  3. 使用 sudo npm install 重新安装了所有软件包
  4. 运行应用程序,出现以下错误

节点 blah-blh.js

错误:模块'/home/XXXXX/Desktop/app-current/ZZZZ-express/node_modules/bcrypt/lib/binding/bcrypt_lib.node' 使用不同的 Node.js 版本编译 NODE_MODULE_VERSION 57. 这个版本的 Node.js 需要 NODE_MODULE_VERSION 72. 请尝试重新编译或重新安装 模块(例如,使用 npm rebuildnpm install)。

在此之后我尝试使用 npm rebuild 进行重建,重建完成后仍然是同样的问题

【问题讨论】:

    标签: node.js npm bcrypt nvm


    【解决方案1】:

    我可以通过安装在 Windows 上解决这个问题

    npm install --global --production windows-build-tools
    

    在 Linux 上我相信你可以使用 node-gyp:https://github.com/nodejs/node-gyp

    【讨论】:

    • 我使用的是 linux,node-gyp 没有解决问题,我想你可能运行的是旧版本的 node,问题只出现在较新版本的 node 上
    • 您使用的是什么发行版?如果 Ubuntu 或其衍生产品:尝试过运行 sudo apt-get install -y build-essential python 吗?单独安装 node-gyp 是不够的,因为它需要 python 来正确构建 bcrypt。
    【解决方案2】:

    用 bcryptjs 替换 bcrypt,它是用 javascript 编写的,不需要编译/构建,是 bcrypt 的直接替代品。

    【讨论】:

      【解决方案3】:

      它不起作用。我尝试了各种解决方案。似乎二进制文件还没有。

      【讨论】:

        【解决方案4】:

        在命令行中运行以下命令,它应该会再次运行。

        1. rm -rf node_modules
        2. npm install
        3. npm rebuild bcrypt --build-from-source

        如果包名称不是bcrypt,您可以将该部分更改为您要重建的包的名称。

        【讨论】:

        • 感谢您的意见,很遗憾它没有奏效。仍然得到相同的错误。另外,尝试安装最新版本的 bcrypt (3.0.7),仍然出现同样的错误。
        猜你喜欢
        • 1970-01-01
        • 2023-03-24
        • 2021-03-04
        • 1970-01-01
        • 2011-07-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-22
        相关资源
        最近更新 更多