Electron: __ был скомпилирован с другой версией Node.js

При попытке упаковать электронное приложение в macOS Sierra с помощью electronic-installer-dmg я получаю следующее:

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
    

Есть ли решение этой проблемы?


person August    schedule 04.09.2017    source источник
comment
да @JaromandaX   -  person August    schedule 04.09.2017
comment
Я только что обновил список. да @JaromandaX я пробовал   -  person August    schedule 04.09.2017
comment
Вы решили свою проблему? У меня точно такая же проблема.   -  person niba    schedule 16.09.2017
comment
@niba Я сделал несколько вещей, которые решили эту проблему. Убедитесь, что вы запускаете сборщик изнутри package.json Если это не сработает, я вручную зашел в папки в node_modules и запустил node-gyp перестроить   -  person August    schedule 17.09.2017


Ответы (2)


Электрон 1.7.5 использует:

  • Узел: 7.9.0
  • Хром: 58.0.3029.110
  • V8: 5.8.283.38

Будут работать только пакеты, скомпилированные с использованием той же версии Node. Попробуйте понизить версию Node до версии 7.9 (установщик можно найти здесь) и попробуйте весь процесс с самого начала.

person Sotiris Kiritsis    schedule 04.09.2017
comment
Все та же проблема - person August; 04.09.2017
comment
@August Вы уверены, что используете ту же версию? Была такая же проблема, и я решил ее так. - person Sotiris Kiritsis; 04.09.2017
comment
Я понизил версию до 7.9. То, что, кажется, сработало, это переход в папку в node_modules и запуск node-gyp rebuild вручную. - person August; 04.09.2017

Если вы используете electron-builder для создания своего электронного проекта. Вам нужно запустить эту команду electron-builder install-app-deps

Добавьте эту команду в сценарии package.json, чтобы ваши собственные зависимости всегда соответствовали электронной версии.

{
    "scripts": {
       "postinstall": "electron-builder install-app-deps",
    }
}
person Long Nguyen    schedule 15.09.2020