我正在尝试使用 Node 模块 easymidi这取决于 midi Electron 应用程序中的模块。
当我运行npm start
时发生错误:
Error: The module '/var/www/html/mdi/node_modules/midi/build/Release/midi.node' was compiled against a different Node.js version using NODE_MODULE_VERSION 46. This version of Node.js requires NODE_MODULE_VERSION 73. Please try re-compiling or re-installing the module (for instance, using
npm rebuild
ornpm install
)
我确实尝试使用 Electron 重建
,如 nodejs documentation 中所述。但错误仍然存在。
有人知道该怎么做吗?
最佳答案
更新(2019 年 12 月)
似乎使用最新版本的 Electron-builder(版本 21.2.0),您可以删除 Electron-rebuild 依赖项,并根据 electron-builder 的警告简单地添加这样的“安装后脚本”:
<小时/>electron-rebuild not required if you use electron-builder (...)
To ensure your native dependencies are always matched electron version, simply add script
"postinstall": "electron-builder install-app-deps"
to your package.json.
原始答案
出现此问题的原因是 electron 使用自己的 Node.js 实例,以及另一个版本。
您可以使用以下命令查看 Electron 使用的 Node ABI 版本:
./node_modules/.bin/electron -a
您可以与当前的 version 进行比较Node.js。
我使用 Electron-rebuild 解决了完全相同的错误:
npm install --save-dev electron-rebuild
./node_modules/.bin/electron-rebuild midi
您可以在 package.json
中使用此命令添加“postinstall”脚本来自动执行该过程。
关于node.js - 将 native Node 模块 midi/easymidi 与 Electron 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57902461/