首页 > 解决方案 > 将本机节点模块 midi / easymidi 与电子一起使用

问题描述

我正在尝试使用依赖于电子应用程序中的midi模块的 nodemodule easymidi 。

当我运行npm start时发生错误:

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

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

有谁知道该怎么做?

标签: node.jsnpmelectronmidielectron-rebuild

解决方案


更新(2019 年 12 月)

根据 electron- builder的警告,似乎使用最新版本的电子构建器(版本 21.2.0),您可以删除电子重建依赖并简单地添加一个“安装后脚本” :

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

为确保您的本地依赖项始终匹配电子版本,只需将脚本添加"postinstall": "electron-builder install-app-deps"到您的 package.json。


原始答案

出现问题是因为electron使用自己的Node.js实例,以及另一个版本。

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

./node_modules/.bin/electron -a

您可以与当前版本Node.js进行比较。

我使用electron-rebuild解决了完全相同的错误:

npm install --save-dev electron-rebuild
./node_modules/.bin/electron-rebuild midi

您可以使用此命令添加“安装后”脚本package.json来自动化该过程。


推荐阅读