Проблемы со сборкой электронного приложения с последовательным портом
Я смог запустить приложение 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