Technologies
January 19, 2016 ยท View on GitHub
We use three major tools in this application and they follow this hierarchy: Javascript -> Node/NPM -> Electron.
Javascript
This should be familiar to most webdevs. We mostly adhere to certain style conventions
NPM
Node Package Manager gives easy package management. We use NPM to manage our dependencies (such as Electron) and our development dependencies (such as JSHint or JSDoc). NPM also handles our command scripting. To understand this and view available npm scripts, see the package.json file and this npm documentation on how npm commands work.
A shortcut explanation of the npm commands you most commonly run from terminal
npm installinstalls node packages from the npm registry listed underdevDependenciesanddependenciesin the package.json.npm startruns the appnpm testlints the app with JSHint and then runs some test scripts in thetestfolder- There's a slew of other custom npm commands under
scriptsin the package.json
OPTIONAL: A useful guide about using NPM as a build tool
Electron
It's the core set of libararies that power the Atom text editor and is useful for creating cross-platform desktop applications.
Making this a desktop application instead of a webapp gives us libraries to access filepaths and other OS resources (via Node libraries) that a webapp would be limited from.
The code does not have to adhere to compatibility for all browsers (looking at you, Internet Explorer) because electron is run on chromium. This extends from JS to CSS (with the use of -webkit- rules when applicable).
We do occasionally use ES2015 and ES2016 conventions and syntax in the code base with no worries for the same reason