All Projects → bennymeg → Nx Electron

bennymeg / Nx Electron

Licence: apache-2.0
Electron schematics for nrwl nx platform

Programming Languages

typescript
32286 projects

Projects that are alternatives of or similar to Nx Electron

Nativescript Schematics
nativescript, mobile, schematics, angular
Stars: ✭ 176 (+67.62%)
Mutual labels:  schematics, cross-platform, monorepo
ng-mono-repo-starter
Angular Mono Repo Starter
Stars: ✭ 79 (-24.76%)
Mutual labels:  monorepo, ngx
Semver
Nx plugin to automate semantic versioning and CHANGELOG generation.
Stars: ✭ 99 (-5.71%)
Mutual labels:  monorepo
Blenderupdater
Small crossplatform Python 3 application to update Blender to the latest buildbot version
Stars: ✭ 103 (-1.9%)
Mutual labels:  cross-platform
Ngx Masonry
Angular Module for displaying a feed of items in a masonry layout
Stars: ✭ 102 (-2.86%)
Mutual labels:  ngx
Cherrypy
CherryPy is a pythonic, object-oriented HTTP framework. https://docs.cherrypy.org/
Stars: ✭ 1,363 (+1198.1%)
Mutual labels:  cross-platform
Flixel
Free, cross-platform 2D game engine powered by Haxe and OpenFL
Stars: ✭ 1,381 (+1215.24%)
Mutual labels:  cross-platform
Vbasync
Cross-platform tool to synchronize macros from an Office VBA-enabled file with a version-controlled folder
Stars: ✭ 98 (-6.67%)
Mutual labels:  cross-platform
Enime
Desktop application for anime fans :D
Stars: ✭ 104 (-0.95%)
Mutual labels:  cross-platform
Joynet
high performance network (tcp socket) library for lua, based on https://github.com/IronsDu/brynet and lua coroutine.
Stars: ✭ 101 (-3.81%)
Mutual labels:  cross-platform
Ruui
React's cross-platform UI for Web and Native (Android, iOs)
Stars: ✭ 103 (-1.9%)
Mutual labels:  cross-platform
Renderer
A shader-based software renderer written from scratch in C89
Stars: ✭ 1,366 (+1200.95%)
Mutual labels:  cross-platform
Influxdb Cpp
💜 C++ client for InfluxDB.
Stars: ✭ 100 (-4.76%)
Mutual labels:  cross-platform
Has Changed Path
GitHub Action that saves time and money in monorepo environments
Stars: ✭ 102 (-2.86%)
Mutual labels:  monorepo
Cron4s
Cross-platform CRON expression parsing for Scala
Stars: ✭ 99 (-5.71%)
Mutual labels:  cross-platform
Boden
Purely native C++ cross-platform GUI framework for Android and iOS development. https://www.boden.io
Stars: ✭ 1,394 (+1227.62%)
Mutual labels:  cross-platform
Openpanzer
Javascript/HTML5 rewrite of Panzer General 2 game
Stars: ✭ 98 (-6.67%)
Mutual labels:  cross-platform
React Native Cross Platform Starter
One codebase to build for iOS, Android, Web and Desktop with React-Native
Stars: ✭ 101 (-3.81%)
Mutual labels:  cross-platform
Stretch
High performance flexbox implementation written in rust
Stars: ✭ 1,383 (+1217.14%)
Mutual labels:  cross-platform
X3c
A plugin-framework that uses C++ and STL.
Stars: ✭ 104 (-0.95%)
Mutual labels:  cross-platform

Nx Electron

Electron builders and schematics for Nrwl Nx platform.

licence npm version Dependencies status Downloads star this repo


Features

Nx Electron provides a set of power ups on Nx for developing cross platform desktop apps using Electron.

  • Schematics: Provides schematics for developing cross platform apps in a mono repo environment.
  • Typescript: Uses Typescript to help reduce errors, and create more structured code.
  • Obfuscation: Since Electron are used on the client machines, nx-electron obfuscates you code (and only it).
  • Minimization: Electron apps tend to be quite large, hence we use webpack to bundle, and minimize to code.
  • Live Update: Provides continuos live reload for your backend code.
  • Event Templates: Provides templates for common events like squirrel setup events, auto update events and IPC events.
  • Packaging: Packages your frontend and backend webpack bundles into single electron package.
  • Making: Makes your frontend and backend webpack bundles into single executable. 🆕

Getting Started

Prerequisite

This module is based on Nx, you will need to set up an Nx workspace before you can use nx-electron.

npx [email protected]

You should also create a frontend project in you workspace (in any nx supported framework you like) for you electron app.

Installation

npm install -D nx-electron

Creating Nx Electron Application

nx g nx-electron:app <electron-app-name> --frontendProject=<frontend-app-name>

NOTE: You should add a frontend project to you workspace prior to invoking this command.

NOTE: On certain frontend platforms (such as Angular, React, etc...) it is important to change the baseHref field to "./", and use the hash strategy on the router in order for it to work well with electron. Further details can be found here.

Building Nx Electron Application

  • Run nx build <electron-app-name> to build your application.

Serving Nx Electron Application

  • Run nx serve <electron-app-name> to serve your application.

Packaging Nx Electron Application

  • Run nx run <electron-app-name>:package [--options] to package your application.
  • Or nx run <electron-app-name>:make --prepackgeOnly to package your application.

The options that can be passed are described here.

Making Nx Electron Application

  • Run nx run <electron-app-name>:make [--options] to make your application.

The options that can be passed are described here.

Configuring static packaging / making options

It is possible to configure all the packaging / making options in .\apps\<electron-app-name>\src\app\options\maker.options.json. For more information read this article. Notice: the option you define at this file will override the options you pass manually via the command line or choose via the angular console.

Migrating Nx Electron Application

To migrate automaticlly run ng update [email protected]<version>. You can find detailed information in the following articles:

Testing Nx Electron Application

  • Run nx test <electron-app-name> to test your application.

Debugging Nx Electron Application

Minimal Project Structure

Regardless of what framework you chose, the resulting file tree will look like this:

<workspace name>/
├── apps/
│   ├── electron-app-name/
│   ├── frontend-app-name/
│   └── frontend-app-name-e2e/
├── libs/
├── tools/
├── nx.json
├── package.json
├── tsconfig.json
└── tslint.json

Support

If you're having any problem, please raise an issue on GitHub and we'll be happy to help.

Contribute

Versioning

This repository follows the semantic versioning rules while adhering to Nx and Angular version scheme.

Attribution

This project is highly inspired by (and dependent on) Nrwl Nx platform. Under the hood, we use Electron Builder to package and make electron application executables.


Author: Benny Megidish.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].