These instructions change regularly.  Steps marked optional are meant there to make the final app size smaller.

**Install Dependencies**

```shell
# Install electron-packager
npm install -g electron-packager

# Install modclean (optional)
npm install -g modclean

# Install electron globally (optional)
npm install -g electron
```

**Modify package.json (optional)**

Remove all dependencies related to the command line (commander, inquirer, colors).  These packages will never be used by mStream Express and can be safely removed to reduce the output size

**Cleanup node_modules (optional)**

Modclean can be used to clean out the node_modules folder of useless files.  This deletes over 1000 useless files saving space and shortening install time.  To install modlcean, run:

```
npm install -g modclean
```

Then run modclean with:

```
modclean
```

**Compile**

Compile with electron-packager

```shell
# Windows
electron-packager  mStream\ mstreamExpress --platform=win32 --arch=x64 --icon=mStream\electron\images\mstream-logo-cut.ico --electron-version=4.0.6

# OSX
electron-packager mStream/ mstreamExpressOSX --platform=darwin --arch=x64 --icon=mStream/electron/images/mstream-logo-cut.icns --electron-version=4.0.6

# Ubuntu
electron-packager mStream/ mstreamExpress --platform=linux --arch=x64 --icon=mStream/electron/images/mstream-logo-cut.png --electron-version=4.0.6
```

**Package with INNO**

Run this INNO script to package mStream Express as an installable EXE

```
    ; Script generated by the Inno Setup Script Wizard.
    ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

    [Setup]
    ; NOTE: The value of AppId uniquely identifies this application.
    ; Do not use the same AppId value in installers for other applications.
    ; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
    AppId={{BCD70900-6E68-40FD-87C6-ADC5141BFFA4}}
    AppName=mStream Express
    AppVersion=0.6.0
    ;AppVerName=mStream Express 0.6.0
    AppPublisher=Iros Software LLC
    AppPublisherURL=http://mstream.io
    AppSupportURL=http://mstream.io
    AppUpdatesURL=http://mstream.io
    DefaultDirName={pf}\mStream Express
    DisableProgramGroupPage=yes
    OutputDir=C:\Users\paul\Documents\Code\ME INNO
    OutputBaseFilename=mStreamExpressSetup-v0.6
    SetupIconFile=C:\Users\paul\Documents\Code\mstream-electron\images\mstream-logo-cut.ico
    Compression=lzma
    SolidCompression=yes

    [Languages]
    Name: "english"; MessagesFile: "compiler:Default.isl"

    [Tasks]
    Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"

    [Files]
    Source: "C:\mstreamExpress\mstreamExpress.exe"; DestDir: "{app}"; Flags: ignoreversion
    Source: "C:\mstreamExpress\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
    ; NOTE: Don't use "Flags: ignoreversion" on any shared system files

    [Icons]
    Name: "{commonprograms}\mStream Express"; Filename: "{app}\mstreamExpress.exe"
    Name: "{commondesktop}\mStream Express"; Filename: "{app}\mstreamExpress.exe"; Tasks: desktopicon

    [Run]
    Filename: "{app}\mstreamExpress.exe"; Description: "{cm:LaunchProgram,mStream Express}"; Flags: nowait postinstall skipifsilent
```

**Sign App on Windows**

Install WIndows SDK

```
 cd "c:\Program Files (x86)\Windows Kits\10\bin\x86\"

 signtool.exe sign /tr http://timestamp.digicert.com /td sha256 /fd sha256 /a "c:\mStreamExpressSetup-v0.6.exe"
 ```
 
