将原生节点模块Midi / easymidi与电子一起使用

时间:2019-09-12 08:13:12

标签: node.js npm electron midi electron-rebuild

我正在尝试使用节点模块easymidi,该模块取决于电子应用程序中的midi模块。

我运行npm start时发生错误:

  

错误:模块'/var/www/html/mdi/node_modules/midi/build/Release/midi.node'   使用不同的Node.js版本编译   NODE_MODULE_VERSION 46.此版本的Node.js需要   NODE_MODULE_VERSION 73.请尝试重新编译或重新安装   模块(例如,使用npm rebuildnpm install

我确实尝试按照nodejs documentation中所述使用electron-rebuild,但错误仍然存​​在。

有人知道该怎么办吗?

1 个答案:

答案 0 :(得分:1)

更新(2019年12月)

似乎使用最新版本的 electron-builder (版本21.2.0),您可以删除 electron-rebuild 依赖项,而只需添加“安装后脚本”像这样,根据 electron-builder 的警告:

  

如果使用电子生成器(...),则不需要电子重建

     

确保您的本机依赖性始终与电子匹配   版本,只需将脚本AER::tobit(., robust=TRUE)添加到package.json中即可。


原始答案

发生此问题是因为 electron 使用其自己的 Node.js 实例以及另一个版本。

您可以使用以下命令查看 electron 使用的Node ABI版本:

"postinstall": "electron-builder install-app-deps"

您可以将其与当前 Node.js version进行比较。

我通过使用电子重建解决了完全相同的错误:

./node_modules/.bin/electron -a

您可以在npm install --save-dev electron-rebuild ./node_modules/.bin/electron-rebuild midi 中使用此命令添加“后安装”脚本,以自动执行该过程。