【问题标题】:Electron: __ was compiled against a different version of Node.jsElectron:__ 是针对不同版本的 Node.js 编译的
【发布时间】:2020-09-15 18:47:19
【问题描述】:

当尝试使用 electron-installer-dmg 在 macOS Sierra 上打包电子应用程序时,我得到以下信息:

Error: The module '/Users/august/projects/node_modules/macos-alias/build/Release/volume.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 54. This version of Node.js requires
NODE_MODULE_VERSION 57. Please try re-compiling or re-installing
the module (for instance, using `npm rebuild` or `npm install`).
at Object.Module._extensions..node (module.js:598:18)<br>
at Module.load (module.js:503:32)<br>
at tryModuleLoad (module.js:466:12)<br>
at Function.Module._load (module.js:458:3)<br>
at Module.require (module.js:513:17)<br>
at require (internal/module.js:11:18)<br>
at Object.<anonymous> (/Users/august/projects/node_modules/macos-alias/lib/create.js:7:13)<br>
at Module._compile (module.js:569:30)<br>
at Object.Module._extensions..js (module.js:580:10)<br>
at Module.load (module.js:503:32)<br>

版本:

Node 8.0.0
npm: 5.4
electron: 1.7.5
electron-installer-dmg: 0.2.1
electron-packager: 8.7.2
macos-alias: 0

我试过了:

  • 切换节点版本。
  • 正在运行./node_modules/.bin/electron-rebuild
  • 删除 node_modules 并运行 npm install
  • 运行 npm cache clear 并重新安装包
  • 正在运行npm rebuild
  • 设置 .npmrc 文件:

    runtime = electron
    target = 1.7.5
    target_arch = x64
    disturl = https://atom.io/download/atom-shell
    

有没有办法解决这个问题?

【问题讨论】:

  • 是的@JaromandaX
  • 我刚刚更新了列表。是的@JaromandaX 我试过了
  • 您的问题解决了吗?我也有同样的问题。
  • @niba 我做了很少的事情来解决它。确保从 package.json 内部运行构建器如果这不起作用,我手动进入 node_modules 中的文件夹并运行 node-gyprebuild

标签: javascript node.js electron electron-packager


【解决方案1】:

电子1.7.5用途:

  • 节点:7.9.0
  • 铬:58.0.3029.110
  • V8:5.8.283.38

只有使用 相同版本 的 Node 编译的包才能工作。尝试将您的 Node 版本降级到 7.9(您可以找到安装程序 here)并从头开始尝试整个过程。

【讨论】:

  • 还是同样的问题
  • @August 你确定你使用的是同一个版本吗?有同样的问题,这就是我解决它的方式。
  • 我已将版本降级到 7.9。似乎有效的是转到 node_modules 中的文件夹并手动运行node-gyp rebuild
【解决方案2】:

如果您使用electron-builder 来构建您的电子项目。你需要运行这个命令electron-builder install-app-deps

将此命令添加到 package.json 的脚本中,以确保您的原生依赖项始终匹配电子版本。

{
    "scripts": {
       "postinstall": "electron-builder install-app-deps",
    }
}

【讨论】:

    猜你喜欢
    • 2021-02-19
    • 2019-07-28
    • 2022-01-06
    • 2019-12-03
    • 2020-12-22
    • 2018-03-05
    • 2021-04-18
    • 2017-12-07
    相关资源
    最近更新 更多