README.md

September 19, 2019 ยท View on GitHub

fusing-angular

Provides an extremely fast seed project for the development of Angular Universal (SSR) and Electron projects.

Goals

Designed to get a team up and running with a fast development toolkit for Angular Universal, Electron, and NativeScript applications.

Angular Features

  • Angular 9 w/ Ivy Renderer
  • Platform specific Angular modules.
  • Multi Language support.
  • Angular PWA support.

Development Features

  • A blazing fast bundler FuseBox.
  • Production ready builds.
  • Angular specific TSLint rules.
  • Hot Module Reloading (HMR) for faster browser reloads during client development.
  • Heroku, Docker, and Serverless (GC, AWS) Deployment Examples.

Testing Features

  • A blazing fast test runner Jest.
  • Angular testing via jest
  • Server (api/rendering) testing via supertest and jest
  • E2E testing via cypress
  • Electron testing via spectron

Performance Features

Universal (SSR) Features

  • Flicker-free Angular Universal server built on Express.
  • Server prepped to support clustered mode for horizontal scaling via throng.
  • HTTP Cache-Tag support.
  • Unified logging.

Electron Features

  • Main process compiled to bytecode via bytenode to help protect your source code.
  • Configured to ouput windows, mac, and linux builds.

Caveats

  • No CSS preprocessor. Just use plain CSS w/ css-variables.

Commands

CommandInfo
testRuns all .spec.ts files through Jest
test.covRuns all .spec.ts files through Jest w/ coverage reporting.
test.watchContinous testing of all .spec.ts files through Jest
buildgenerate web application artifacts
build.prodgenerate web application artifacts w/ production optimizations
build.desktopgenerate web & desktop application artifacts
build.desktop.prodgenerate web & desktop application artifacts w/ production optimizations
startStarts the Angular Universal server for development and watches for changes.
start.prodStarts the Angular Universal server w/ optimizations.
start.desktopStarts the desktop application for development and watches for changes.
start.desktop.prodStarts the desktop application w/ optimizations.
lintChecks app an tools for lint failures
lint.appChecks /src for lint failures
lint.toolsChecks /tools for lint failures
gen.iconsGenerate various favicons from a source imgage.
release.macProduction electron output for mac
release.winProduction electron output for windows
release.linuxProduction electron output for linux
release.allProduction electron output for all three platforms

Application Configuration

TODO

Conventions

TODO

Environment Variables

TODO