Electron: Cannot find module 'app'

While attempting to use electron to write a cross-platform utility, I ran into an unexpected problem: The application would error out with a few weird messages like these:

  • App threw an error during load
    Error: Cannot find module 'app'
    at Module._resolveFilename (module.js:455:15)


  • App threw an error when running [TypeError: Cannot read property 'on' of undefined]
    A JavaScript error occurred in the main process
    Uncaught Exception:
    TypeError: Cannot read property 'on' of undefined


References


Solution

The frustrating thing about this problem is how simple it is to solve: I wasted 3 hours trying to figure out what was going wrong with my setup. It wasn't until I stumbled across zyeek's Stack Overflow answer that I was able to move on.

What was the solution? In my case it involves not using a terminal plugin for Atom (specifically: platformio-ide-terminal). Once I ran 'npm start' from a system terminal (I'm running Lubuntu 16.04) the problem went away. There is an open issue on the atom terminal github from November 2016 that describes the issue.