在一个 Electron 项目中,我只是尝试要求 RobotJS 并得到了错误:
Uncaught Error: The module
'\\?\C:\Users\\... snip ...\app\bot\node_modules\robotjs\build\Release\robotjs.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 83. This version of Node.js requires
NODE_MODULE_VERSION 89. Please try re-compiling or re-installing the
module (for instance, using `npm rebuild` or `npm install`).
我在目录中尝试了建议npm install
,但错误没有得到修复。npm rebuild
node_modules/robotjs
我尝试了几个不同的版本。我目前在最新的 RobotJS 分支上,所以我尝试转到过去的 Electron 版本。
Electron 11.0.0(显然最早的 11.x 版本):Node.js version using NODE_MODULE_VERSION 83. This version of Node.js requires NODE_MODULE_VERSION 85.
Electron 10.4.7(最新 10.x 版本):Node.js version using NODE_MODULE_VERSION 83. This version of Node.js requires NODE_MODULE_VERSION 82.
10.4.7 和 11.0.0 之间似乎没有任何 Electron 版本,所以接下来我尝试降低 RobotJS 版本,但这与我的 Node.js 版本不兼容:
error C2660: 'v8::Value::Int32Value': function does not take 0 arguments
而且我宁愿不使用各种 Node.js 版本和电子版本,因为有一个完美匹配的机会。
有没有比试错更简单的方法来确定是否有任何版本兼容?或者更好的是,如果不对其中一个库进行大量修改,是否可以修复兼容性?