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