NODE_MODULE_VERSION 46. 这个版本的 Node.js 需要 NODE_MODULE_VERSION 64. 请尝试重新编译或重新安装

Posted

技术标签:

【中文标题】NODE_MODULE_VERSION 46. 这个版本的 Node.js 需要 NODE_MODULE_VERSION 64. 请尝试重新编译或重新安装【英文标题】:NODE_MODULE_VERSION 46. This version of Node.js requires NODE_MODULE_VERSION 64. Please try re-compiling or re-installing 【发布时间】:2018-11-21 03:12:13 【问题描述】:

我正在尝试执行提供给我的节点应用程序,它应该可以正常工作。

我已尝试运行它,但无法修复此错误:

seba@vps92941:~/services/drivetech$ node awto.js
/home/seba/services/drivetech/node_modules/bindings/bindings.js:83
        throw e
        ^

Error: The module '/home/seba/services/drivetech/node_modules/zmq/build/Release/zmq.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 46. This version of Node.js requires
NODE_MODULE_VERSION 64. Please try re-compiling or re-installing
the module (for instance, using `npm rebuild` or `npm install`).
    at Object.Module._extensions..node (internal/modules/cjs/loader.js:731:18)
    at Module.load (internal/modules/cjs/loader.js:612:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
    at Function.Module._load (internal/modules/cjs/loader.js:543:3)
    at Module.require (internal/modules/cjs/loader.js:650:17)
    at require (internal/modules/cjs/helpers.js:20:18)
    at bindings (/home/seba/services/drivetech/node_modules/bindings/bindings.js:76:44)
    at Object.<anonymous> (/home/seba/services/drivetech/node_modules/zmq/lib/index.js:6:30)
    at Module._compile (internal/modules/cjs/loader.js:702:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)

我已经试过了:

重新构建模块 (zmq) 移除并重新安装模块 卸载所有内容(包括节点),重新安装 将 zmq 重新构建为全局模块

我怎样才能摆脱这个?我不知道还能做什么。

这些是我的节点和 npm 版本:

节点:v10.4.0 npm:3.5.2

【问题讨论】:

检查nodejs --version。由于两个 here 之间的差异,我遇到了类似的问题。 【参考方案1】:

我在 bcrypt 从节点 8 移动到节点 10 时遇到了同样的问题,最后我通过手动调用 node-pre-gyp 解决了:

cd node_modules/<module_name>
node-pre-gyp rebuild

这迫使 node-pre-gyp 工具(node 用来编译二进制模块的工具)采用正确的 node 版本。

可能在执行之前重新安装它以确保您拥有正确版本的 node-pre-gyp

npm i -g node-pre-gyp

希望对你有帮助

【讨论】:

以上是关于NODE_MODULE_VERSION 46. 这个版本的 Node.js 需要 NODE_MODULE_VERSION 64. 请尝试重新编译或重新安装的主要内容,如果未能解决你的问题,请参考以下文章

使用 NODE_MODULE_VERSION 64 针对不同的 Node.js 版本编译。此版本的 Node.js 需要 NODE_MODULE_VERSION 67

如何找到 NODE_MODULE_VERSION?

bindings.node' 是针对不同的 Node.js 版本使用 NODE_MODULE_VERSION 93 编译的。此版本的 Node.js 需要 NODE_MODULE_VERSION 89

node-gyp 针对错误的 NODE_MODULE_VERSION 进行编译

LevelDOWN:测试时NODE_MODULE_VERSION错误,但未运行

Node - 使用 NODE_MODULE_VERSION 72 针对不同的 Node.js 版本进行编译