模块版本与无头浏览器和桌面节点不匹配
Module version mismatch with headless browser and desktop Node
当我尝试将无头浏览器与桌面节点 shell 一起使用时,我得到了一个 "Module version mismatch error"。我已经用 nw.js 和 atom-shell 尝试过 Zombiejs 和 Phantomjs;在这两种情况下,一旦无头浏览器开始运行,应用程序就会因模块不匹配错误而崩溃。
这是 Phantomjs 和 atom-shell 的错误:
Uncaught Exception:
Error: Module version mismatch. Expected 41, got 14.
at Error (native)
at Object.module.(anonymous function) (ATOM_SHELL_ASAR.js:118:20)
at Object.module.(anonymous function) [as .node] (ATOM_SHELL_ASAR.js:118:20)
at Module.load (module.js:370:32)
at Function.Module._load (module.js:325:12)
at Module.require (module.js:380:17)
at require (module.js:399:17)
at bindings (/Users/Ajay/Projects/atom-shell/node_modules/phantom/node_modules/dnode/node_modules/weak/node_modules/bindings/bindings.js:76:44)
at Object.<anonymous> (/Users/Ajay/Projects/atom-shell/node_modules/phantom/node_modules/dnode/node_modules/weak/lib/weak.js:7:35)
at Module._compile (module.js:475:26)
知道导致错误的原因吗?
错误是从 Node.js internals 抛出的。您正在混合为不同版本的 io.js 或 Node.js 构建的二进制模块。模块版本指的是 C++ NODE_MODULE_VERSION
宏,在 JavaScript 中可访问为 process.versions.modules
.
14 似乎是 Node.js 的版本号,因为 Node.js v0.11.11.
找不到41的资料,虽然很明显42是io.js v1.0.0使用的版本号。
UPDATE:41 是 io.js 的版本,捆绑在 atom-shell 内部,从 io.js v1.0.0-pre
中截取.
nw.js/atom-shell 使用它自己的 Node.js 副本来执行引擎。在终端中,尝试进行干净的安装和执行而不去 atom-shell.
另请注意,此问题不应该是 Phantom.js 或 Zombie.js 独有的,而是所有使用 C++ 代码的模块都会遇到的。
要解决此问题,请使用以下说明之一:
当我尝试将无头浏览器与桌面节点 shell 一起使用时,我得到了一个 "Module version mismatch error"。我已经用 nw.js 和 atom-shell 尝试过 Zombiejs 和 Phantomjs;在这两种情况下,一旦无头浏览器开始运行,应用程序就会因模块不匹配错误而崩溃。
这是 Phantomjs 和 atom-shell 的错误:
Uncaught Exception:
Error: Module version mismatch. Expected 41, got 14.
at Error (native)
at Object.module.(anonymous function) (ATOM_SHELL_ASAR.js:118:20)
at Object.module.(anonymous function) [as .node] (ATOM_SHELL_ASAR.js:118:20)
at Module.load (module.js:370:32)
at Function.Module._load (module.js:325:12)
at Module.require (module.js:380:17)
at require (module.js:399:17)
at bindings (/Users/Ajay/Projects/atom-shell/node_modules/phantom/node_modules/dnode/node_modules/weak/node_modules/bindings/bindings.js:76:44)
at Object.<anonymous> (/Users/Ajay/Projects/atom-shell/node_modules/phantom/node_modules/dnode/node_modules/weak/lib/weak.js:7:35)
at Module._compile (module.js:475:26)
知道导致错误的原因吗?
错误是从 Node.js internals 抛出的。您正在混合为不同版本的 io.js 或 Node.js 构建的二进制模块。模块版本指的是 C++ NODE_MODULE_VERSION
宏,在 JavaScript 中可访问为 process.versions.modules
.
14 似乎是 Node.js 的版本号,因为 Node.js v0.11.11.
找不到41的资料,虽然很明显42是io.js v1.0.0使用的版本号。
UPDATE:41 是 io.js 的版本,捆绑在 atom-shell 内部,从 io.js v1.0.0-pre
中截取.
nw.js/atom-shell 使用它自己的 Node.js 副本来执行引擎。在终端中,尝试进行干净的安装和执行而不去 atom-shell.
另请注意,此问题不应该是 Phantom.js 或 Zombie.js 独有的,而是所有使用 C++ 代码的模块都会遇到的。
要解决此问题,请使用以下说明之一: