Update: If you run export DISPLAY=:0
in the terminal prior to npm start
, the application runs just fine on the remote device. Thank you Alex!
https://twitter.com/alexbragdon/status/915601277752573954
In working on an project for work, I have figured out the hard way that Electron has to be started from a terminal session on your target device (ie the computer it is to be viewed on). I am developing an embedded system based on the Raspberry Pi that does not take user input but displays information on a screen.
Upon downloading the electron-quick-start example, everything installs correctly without error and can be done remotely via SSH. Upon running with npm start
, the following error is thrown.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
> electron-quick-start@1.0.0 start /home/pi/electron-quick-start > electron . npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! electron-quick-start@1.0.0 start: `electron .` npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the electron-quick-start@1.0.0 start script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above. npm ERR! A complete log of this run can be found in: npm ERR! /home/pi/.npm/_logs/2017-10-04T15_11_16_398Z-debug.log |
I spent most of the evening trying to debug npm ERR! code ELIFECYCLE
to no avail. On a lark, I connected a keyboard to the device and ran npm start
and it ran without error. Sigh.
The remote development alternative for doing this is to use Remote Desktop Connection a client comes bundled in with windows. The software can be installed on the remote system (the Raspberry Pi) using apt-get install xrdp
. Upon connecting, opening up a shell in the RDP client, and running npm start
, the example application works just fine.