令人困惑的 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 错误的主要内容,如果未能解决你的问题,请参考以下文章