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!
Have you tried ‘export DISPLAY=:0’ I’ve had some success with that in the past re: ssh apps that open GUI things.
— Alex Bragdon (@alexbragdon) October 4, 2017
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.
> firstname.lastname@example.org start /home/pi/electron-quick-start
> electron .
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! email@example.com start: `electron .`
npm ERR! Exit status 1
npm ERR! Failed at the firstname.lastname@example.org 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.