Node Несоответствие версии модуля: ожидается 50

У меня была эта проблема, когда с новой установки Node и npm пакет serial port не загружается со следующей ошибкой в ​​пакете Hello World Electron:

введите описание изображения здесь

Я нахожусь на Node версии 6.6.0 и NPM версии 3.10.7 и OS X 10.11.6.

Я посмотрел, был ли я как-то устаревшим, но, глядя на этот список, я не могу найти ничего, у которого есть модуль версия 50. Это ошибка?

Я пробовал npm rebuild, а также удалял модули и переустанавливал, но не играл в кости.

Обновление: даже если при запуске node -v он печатает v6.6.0, запуск process.versions.node в веб-консоли дает мне v6.5.0. Что здесь происходит?

Ответ 1

Это известная проблема, вызванная модулем serialport с использованием собственного кода, который построен для другой версии Node, Вы можете прочитать немного больше об аддонах здесь, если вам интересно; это просто модули, написанные на C/С++, которые могут взаимодействовать с Node, поэтому модуль может более легко взаимодействовать с оборудованием.

Решение, предложенное в этом выпуске, таково:

npm rebuild --runtime=electron --target=1.2.5 --disturl=https://atom.io/download/atom-shell --build-from-source

Если вы еще не установили electron-rebuild, это может быть полезно для обеспечения правильной работы процесса восстановления:

npm install --save-dev electron-rebuild

хотя при запуске Node -v он печатает v6.6.0, запуская process.versions.node в веб-консоли, дает мне v6.5.0. Что здесь происходит?

Electron использует собственную версию Node, которая не подключена к вашей системе Node (см. домашняя страница, чтобы просмотреть Node, которую использует последний Electron, или используйте process.versions.node, как вы это делали в вопросе).

Вы можете попробовать более старую версию (возможно 1.1.0, которая использует Chrome 50?) в случае, если это является причиной проблемы.

Ответ 2

В моем случае ошибка была:

App threw an error during load
Error: Module version mismatch. Expected 50, got 48.
    at Error (native)
    at process.module.(anonymous function) [as dlopen] (ELECTRON_ASAR.js:173:20)
    at Object.Module._extensions..node (module.js:583:18)
    at Object.module.(anonymous function) [as .node] (ELECTRON_ASAR.js:173:20)
    at Module.load (module.js:473:32)
    at tryModuleLoad (module.js:432:12)
    at Function.Module._load (module.js:424:3)
    at Module.require (module.js:483:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/myapp/node_modules/sqlite3/lib/sqlite3.js:4:15)

После исправления ошибки была исправлена:

npm install --save-dev electron-rebuild

npm rebuild --runtime=electron --target=1.4.3 --disturl=https://atom.io/download/atom-shell --build-from-source