node.js - 将 native Node 模块 midi/easymidi 与 Electron 结合使用

标签 node.js npm electron midi electron-rebuild

我正在尝试使用 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 or npm 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/

相关文章:

javascript - `npm run build`之后的配置文件可编辑

node.js - NPM 包有过时的依赖项,有办法更改其版本吗?

npm - Fish shell 和全局 npm 模块

ionic-framework - 如何以root身份运行 Electron

javascript - Electron 应用未关闭

javascript - 使用 Flatiron 的 Resourceful & Restful 进行身份验证和授权

node.js - 运行 Jasmine 测试时如何查看 `console.log` 的输出

javascript - 为什么这些 console.log 语句不起作用? Electron

node.js - 如何使用 twilio Whatsapp 发送自定义通知而不注册接收者号码?

git - Windows 上的 Git Bash 中没有来自 NPM 命令的进度反馈