2019-11-12 13:00:03 +01:00
2019-04-14 12:25:12 +02:00
2019-11-01 11:43:26 +01:00
2017-04-12 20:29:31 +02:00
2019-07-28 19:14:05 +05:30
2019-11-12 13:00:03 +01:00
2019-10-29 13:49:15 +02:00
2019-11-01 11:44:27 +01:00
2017-04-02 13:15:24 +02:00
2017-04-02 13:15:24 +02:00
2019-03-02 20:32:10 +01:00
2019-11-01 11:43:26 +01:00
2017-09-09 13:48:10 +02:00
2019-11-01 11:59:50 +01:00
2019-04-14 13:04:44 +02:00
2018-07-12 22:47:14 +08:00
2019-06-02 22:39:41 +09:00

Angular Logo Electron Logo

Travis Build Status Make a pull request License

Watch on GitHub Star on GitHub Tweet

Introduction

Bootstrap and package your project with Angular 8 and Electron (Typescript + SASS + Hot Reload) for creating Desktop applications.

Currently runs with:

  • Angular v8.2.12
  • Electron v7.0.0
  • Electron Builder v21.2.0

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

/!\ Angular 8.x CLI needs Node 10.9 or later to works correctly.

Getting Started

Clone this repository locally :

git clone https://github.com/maximegris/angular-electron.git

Install dependencies with npm :

npm install

There is an issue with yarn and node_modules when the application is built by the packager. Please use npm as dependencies manager.

If you want to generate Angular components with Angular-cli , you MUST install @angular/cli in npm global context. Please follow Angular-cli documentation if you had installed a previous version of angular-cli.

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 ?

YES! You can do it! Just by importing your library in npm dependencies section (not devDependencies) with npm install --save. It will be loaded by electron during build phase and added to your final package. Then use your library by importing it in main.ts file. Quite simple, isn't it ?

Browser mode

Maybe you want to execute the application in the browser with hot reload ? Just run 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.

Branch & Packages version

  • Angular 4 & Electron 1 : Branch angular4
  • Angular 5 & Electron 1 : Branch angular5
  • Angular 6 & Electron 3 : Branch angular6
  • Angular 7 & Electron 3 : Branch angular7
  • Angular 8 & Electron 7 : (master)
Description
No description provided
Readme 3.1 MiB
Languages
TypeScript 75.5%
Dockerfile 8.9%
SCSS 6%
JavaScript 5.5%
HTML 4.1%