【问题标题】:Use native node modules midi / easymidi with electron将本机节点模块 midi / easymidi 与电子一起使用
【发布时间】:2020-01-14 01:55:59
【问题描述】:
我正在尝试使用 nodemodule 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 rebuild 或npm install)
我确实尝试使用electron-rebuild,如nodejs documentation 中所述,但错误仍然存在。
有人知道该怎么做吗?
【问题讨论】:
标签:
node.js
npm
electron
midi
electron-rebuild
【解决方案1】:
更新(2019 年 12 月)
似乎使用最新版本的 electron-builder(版本 21.2.0),您可以删除 electron-rebuild 依赖并简单地添加“安装后脚本”像这样,根据electron-builder的警告:
如果您使用电子生成器 (...),则不需要电子重建 (...)
为了确保你的原生依赖总是匹配电子
版本,只需将脚本 "postinstall": "electron-builder install-app-deps" 添加到您的 package.json。
原答案
出现问题的原因是 electron 使用了自己的 Node.js 实例,并带有另一个版本。
您可以通过以下命令查看electron使用的Node ABI版本:
./node_modules/.bin/electron -a
您可以与 Node.js 的当前version 进行比较。
我使用 electron-rebuild 解决了完全相同的错误:
npm install --save-dev electron-rebuild
./node_modules/.bin/electron-rebuild midi
您可以在package.json 中使用此命令添加“安装后”脚本以自动执行该过程。