Проблемы со сборкой электронного приложения с последовательным портом

Я смог запустить приложение node.js, используя serialport. Теперь пытаюсь перенести его на электрон для кроссплатформенного использования. 'npm install serialport' выдает следующее:

  serialport@2.0.5 install /Users/ylh/0/electron/electron-quick-start-master/node_modules/serialport
  node-pre-gyp install --fallback-to-build

  CXX(target) Release/obj.target/serialport/src/serialport.o
  CXX(target) Release/obj.target/serialport/src/serialport_unix.o
  CXX(target) Release/obj.target/serialport/src/serialport_poller.o
  SOLINK_MODULE(target) Release/serialport.node
  COPY /Users/ylh/0/electron/electron-quick-start-master/node_modules/serialport/build/Release/node-v47-darwin-x64/serialport.node
  TOUCH Release/obj.target/action_after_build.stamp

  electron-prebuilt@0.34.3 postinstall /Users/ylh/0/electron/electron-quick-start-master/node_modules/electron-prebuilt
  node install.js

Когда я запустил приложение с электронным, всплывающее окно жалуется, что

The app provided is not a valid electron app, please read the docs on how to write one:
https://github.com/atom/electron/tree/master/docs

Error: Cannot find module '/Users/ylh/0/electron/electron-quick-start-master/node_modules/serialport/build/Release/node-v46-darwin-x64/serialport.node'

Конечно, версия в каталоге node_modules - node-v47-darwin-x64. Я не знаю, почему npm install собирает v47, но ищет v46 для запуска.

1 ответ

Решение
export npm_config_disturl=https://atom.io/download/atom-shell
export npm_config_target=0.34.3
export npm_config_arch=x64
export npm_config_runtime=electron
HOME=~/.electron-gyp npm install serialport

После этого перейдите к /Users/ylh/0/electron/electron-quick-start-master/node_modules/serialport/build/Release/

И переименовать electron-0.34-darwin-x64 в node-v46-darwin-x64

Другие вопросы по тегам