令人困惑的 NODE_MODULE 错误

Posted

技术标签:

【中文标题】令人困惑的 NODE_MODULE 错误【英文标题】:Confusing NODE_MODULE error 【发布时间】:2018-03-14 23:03:02 【问题描述】:

我正在使用 greenworks SDK。我不明白这个错误信息。我不知道它是在告诉我重新编译 greenworks-osx64.node 还是更改我的系统节点设置。

ELECTRON_ASAR.js:173 Uncaught Error: The module '/Users/quantum/ele/electron-quick-start/lib/greenworks-osx64.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 57. This version of Node.js requires
NODE_MODULE_VERSION 53. Please try re-compiling or re-installing
the module (for instance, using `npm rebuild` or`npm install`).
    at process.module.(anonymous function) [as dlopen] (ELECTRON_ASAR.js:173:20)
    at Object.Module._extensions..node (module.js:598:18)
    at Object.module.(anonymous function) [as .node] (ELECTRON_ASAR.js:173:20)
    at Module.load (module.js:488:32)
    at tryModuleLoad (module.js:447:12)
    at Function.Module._load (module.js:439:3)
    at Module.require (module.js:498:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/Users/quantum/ele/electron-quick-start/greenworks.js:12:18)
    at Object.<anonymous> (/Users/quantum/ele/electron-quick-start/greenworks.js:133:3)

我正在使用 electron ~1.6.2 和 node -v v8.6.0

我错过了页面下方的其他版本。我为电子 1.6.1 安装了一个。现在我的代码运行这个:

var greenworks = require('./greenworks'); var f = greenworks.initAPI(); document.write(f);控制台.log(f);

“假”登录到控制台。

【问题讨论】:

【参考方案1】:

Electron 支持原生 Node 模块,但由于 Electron 很可能使用与系统中安装的 Node 二进制文件不同的 V8 版本,因此在构建原生模块时必须手动指定 Electron 标头的位置。

来源:here

【讨论】:

什么是electron-gyp electron的编译器,同node-gyp,用于编译native模块(C语言编写)。 我推荐这个guide 谢谢 - 所以你是说我需要用 electron-gyp 手动重新编译 greenworks? 是的,在指南中你可以找到三种方法来做到这一点。

以上是关于令人困惑的 NODE_MODULE 错误的主要内容,如果未能解决你的问题,请参考以下文章

c ++真正令人困惑的链接错误

可能简单但令人困惑的赋值错误

Fortran程序中令人困惑的调试错误

令人困惑的“重复标识符”打字稿错误消息

尝试上传到 Cloudinary 时收到令人困惑的错误

TypeScript 令人困惑的错误'对象可能是'未定义'和'类型上不存在属性'长度''