NodeJS, NPM, Electron
By R. S. Doiel 2017-10-20
Electron is an app platform leveraging web technologies. Conceptually it is a mashup of NodeJS and Chrome browser. Electron site has a nice starter app. It displays a window with Electron version info and ‘hello world’.
Before you can get going with Electron you need to have a working NodeJS and NPM. I usually compile from source and this was my old recipe (adjusted for v8.7.0).
cd git clone https://github.com/nodejs/node.git cd node git checkout v8.7.0 ./configure --prefix=$HOME make && make install
To install an Electron Quick Start I added the additional steps.
cd git clone https://github.com/electron/electron-quick-start cd electron-quick-start npm install npm start
Notice Electron depends on a working node and npm. When I tried this recipe it failed on
npm install with errors regarding internal missing node modules.
After some fiddling I confirmed my node/npm install failed because I had install the new version of over a partially installed previous version. This causes the node_modules to be populated with various conflicting versions of internal modules.
Sorting that out allowed me to test the current version of electron-quick-start cloned on 2017-10-20 under NodeJS v8.7.0.
Avoiding Setup Issues in the future
The Makefile for NodeJS includes an ‘uninstall’ option. Revising my NodeJS install recipe above I now do the following to setup a machine to work with NodeJS or Electron.
git clone email@example.com:nodejs/node.git cd node ./configure --prefix=$HOME make uninstall make clean make -j 5 make install
If I am on a device with a multi-core CPU (most of the time) you can speed up the make process using a
-j CPU_CORE_COUNT_PLUS_ONE option (e.g.
-j 5 for my 4 core x86 laptop).
Once node and npm were working normally the instructions in the electron-quick-start worked flawlessly on my x86.
I have tested the node install recipe change on my Pine64 Pinebook, on several Raspberry Pi 3s as well as my x86 Ubuntu Linux laptop.
I have not gotten Electron up on my Pine64 Pinebook or Raspberry Pi’s yet.
npm install outputs errors suggesting that it is expecting an x86 architecture.