Skip to content

Latest commit

 

History

History
87 lines (61 loc) · 3.04 KB

DEVELOPMENT_GUIDE.md

File metadata and controls

87 lines (61 loc) · 3.04 KB

ReQLPro Local Development Guide

Setup

Clone or download the ReQLPro source code from https://github.com/codehangar/reqlpro.git

To install all of ReQLPro's dependencies, open a terminal and navigate to where you cloned or downloaded ReQLPro and run npm install

Then, to start ReQLPro, run npm start

Note that ReQLPro requires Nodejs. Check the "engine" field of the package.json for the version currently being built and testing with: i.e. "engine": "node 6.10.3"

Ubuntu

NOTES for developing on Ubuntu:

Must run:

  • Before npm install: sudo apt-get install libsecret-1-dev
  • After npm install: npm rebuild node-sass

Windows

NOTES for developing on Windows: Be sure to have node-gyp installed:

ERROR in ENOENT: no such file or directory, scandir '...node-sass...'

  • Try running npm rebuild node-sass

File Structure

The app directory has all the HTML, CSS, and Javascript essential to most of the application.

The tools directory is where scripts related to running (for local development), building, and packaging the application are held

The shell directory has all of the files dealing directly with electron setup and configuration.

Generated Directories

The dist directory receives the compiled webpack files

The builds directory receives:

  • a copy of the above dist folder
  • a copy of the shell folder
  • a copy of the package.build.json, renamed to package.json
  • NOTE: package.build.json has been separated in order to install only the dependencies that are required outside of the webpack-able app, i.e. anything used by scripts found in shell. This helps reduce the final file size of the applications.

The apps directory receives:

  • Electron builds for Mac, Windows, and Linux
  • Packaged .dmg for Mac
  • .zip bundles for Windows and Linux

The coverage directory receives the output of the istanbul test coverage reports

Code Structure

The app/main.js file is the entry file for webpack. It is a React front end using Babel to enable JSX, ES6, and ES7 features.

The shell/main.js is the entry point for electron. This file is similar to a server.js file for a nodejs web server. It handles spawning the main electron window (renderer) process, and creating the electron menus.

Testing and Code Coverage

To run the package test script, open a terminal in your reqlpro folder and run npm test

To run tests with a beautiful Nyan Cat reporter, run npm run test-nyan

To get a summary of the code coverage of the tests, run npm run test-coverage

To see the results of the test coverage, run. npm run server-coverage

Building and Packaging the app

To build and package the app, open a terminal in your reqlpro folder and run

  • npm run pre-build for any/all Operation Systems

Followed by running one of the below, depending upon your system

  • npm run build-mac
  • npm run build-linux
  • npm run build-windows