Electron:__是针对不同版本的Node.js编译的

时间:2017-09-04 10:40:27

标签: javascript node.js electron electron-packager

当尝试使用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
    

这个问题有解决办法吗?

2 个答案:

答案 0 :(得分:1)

电子 1.7.5 使用:

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

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

答案 1 :(得分:0)

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

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

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