Plexams-GUI (Angular, Electron)
https://github.com/obcode/elexams-ng.git
Bootstrap and package your project with Angular 6(+) and Electron (Typescript + SASS + Hot Reload) for creating Desktop applications.
Currently runs with:
Clone this repository locally :
`` bash
git clone https://github.com/maximegris/angular-electron.git
%%CODEBLOCK0%% bash
npm install
%%CODEBLOCK1%% bash
npm install -g @angular/cli
`
## To build for development
- **in a terminal window** -> npm start
Voila! You can use your Angular + Electron app in a local development environment with hot reload !
The application code is managed by main.ts. In this sample, the app runs with a simple Angular App (http://localhost:4200) and an Electron window.
The Angular component contains an example of Electron and NodeJS native lib import.
You can disable "Developer Tools" by commenting win.webContents.openDevTools(); in main.ts.
## Included Commands
|Command|Description|
|--|--|
|npm run ng:serve:web| Execute the app in the browser |
|npm run build| Build the app. Your built files are in the /dist folder. |
|npm run build:prod| Build the app with Angular aot. Your built files are in the /dist folder. |
|npm run electron:local| Builds your application and start electron
|npm run electron:linux| Builds your application and creates an app consumable on linux system |
|npm run electron:windows| On a Windows OS, builds your application and creates an app consumable in windows 32/64 bit systems |
|npm run electron:mac| On a MAC OS, builds your application and generates a .app file of your application that can be run on Mac |
**Your application is optimised. Only /dist folder and node dependencies are included in the executable.**
## You want to use a specific lib (like rxjs) in electron main thread ?
You can do this! Just by importing your library in npm dependencies (not devDependencies) with npm install --save. It will be loaded by electron during build phase and added to the final package. Then use your library by importing it in main.ts file. Easy no ?
## Browser mode
Maybe you want to execute the application in the browser with hot reload ? You can do it with npm run ng:serve:web.
Note that you can't use Electron or NodeJS native libraries in this case. Please check providers/electron.service.ts` to watch how conditional import of electron/Native libraries is done.