【问题标题】: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 rebuildnpm 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 中使用此命令添加“安装后”脚本以自动执行该过程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-13
      • 2015-12-06
      • 2016-10-09
      • 1970-01-01
      • 2017-04-21
      • 2019-08-13
      • 2015-05-14
      • 2021-08-08
      相关资源
      最近更新 更多