Bootstrap and package your project with Angular 5(+) and Electron (Typescript + SASS + Hot Reload) for creating Desktop applications.
Currently runs with:
- Angular v5.2.5
- Angular-CLI v1.6.4
- Electron v1.8.2
- Electron Builder v20.0.4
With this sample, you can :
- Run your app in a local development environment with Electron & Hot reload
- Run your app in a production environment
- Package your app into an executable file for Linux, Windows & Mac
- 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 desactivate "Developer Tools" by commenting win.webContents.openDevTools();
in main.ts
.
- Using local variables :
npm start
orcross-env ENV=local npm start
- Using development variables :
cross-env ENV=dev npm start
- Using production variables :
cross-env ENV=prod npm start
Command | Description |
---|---|
npm run ng:serve |
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.
Maybe you want to execute the application in the browser (WITHOUT HOT RELOAD ACTUALLY...) ? You can do it with npm run ng:serve
.
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.
Maxime GRIS |