Universal javascript support for Angular
Clone or download
CaerusKaru chore: bump year (#1115)
Happy New Year! 🎉
Latest commit 2317106 Jan 1, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci build: update Bazel to use fine-grained deps (#1083) Dec 23, 2018
.github ci: increase resources for testing (#1020) Jun 10, 2018
docs docs: refactor READMEs (#1006) Jun 4, 2018
integration test: add tests to ensure that document.location is populated (#1112) Dec 25, 2018
modules test: add tests to ensure that document.location is populated (#1112) Dec 25, 2018
scripts build: update Bazel to use fine-grained deps (#1083) Dec 23, 2018
tools build: add back bazelrc (#1110) Dec 25, 2018
.bazelignore feat(hapi-engine): add schematics (#1057) Dec 25, 2018
.bazelrc build: add back bazelrc (#1110) Dec 25, 2018
.editorconfig chore(.editorconfig): remove newline for .json Aug 7, 2015
.gitignore build: update Bazel to use fine-grained deps (#1083) Dec 23, 2018
.npmignore feat(universal): AOT support (#560) Oct 5, 2016
BUILD.bazel build: update Bazel to use fine-grained deps (#1083) Dec 23, 2018
CHANGELOG.md chore(release): 7.0.2 Oct 18, 2018
CONTRIBUTING.md chore(example): clean up unmaintained examples folder Jul 12, 2016
LICENSE chore: bump year (#1115) Jan 1, 2019
README.md fix(readme): use circle ci build badge, update img url, add socketeng… Dec 25, 2018
UPGRADE-GUIDE.md docs: refactor READMEs (#1006) Jun 4, 2018
WORKSPACE build: update Bazel to use fine-grained deps (#1083) Dec 23, 2018
angular.tsconfig.json test(e2e): add e2e testing (#1013) Jun 10, 2018
index.bzl build: update Bazel to use fine-grained deps (#1083) Dec 23, 2018
package.json build: update Bazel to use fine-grained deps (#1083) Dec 23, 2018
publish-next.sh build: publish only ng_package-s tagged with 'release' (#1060) Aug 27, 2018
publish.sh build: publish only ng_package-s tagged with 'release' (#1060) Aug 27, 2018
tsconfig.json test(express-engine): add basic unit tests (#953) Apr 14, 2018
tslint.json feat(express-engine): add schematics (#1051) Aug 22, 2018
yarn.lock build: update Bazel to use fine-grained deps (#1083) Dec 23, 2018

README.md

CircleCI Join the chat at https://gitter.im/angular/universal

Angular Universal

Angular Universal

Table of Contents


Introduction

The Angular Universal project is a community driven project to expand on the core APIs from Angular (platform-server) to enable developers to do server side rendering of Angular applications in a variety of scenarios.

This repository will host the various tools like engines to integrate with various backends(NodeJS, ASP.NET etc.) and also extra modules and examples to help you started with server side rendering.

The Universal project is driven by community contributions. Please send us your Pull Requests!

Getting Started

* NodeJS :: Example repo

  • Minimal universal example

* ASP.NET Core :: Universal Starter repo

  • Installation: Clone the above repo, npm i && dotnet restore (VStudio will run these automatically when opening the project)
  • Launch files included for both VSCode & VStudio to run/debug automatically (press F5).

Packages

The packages from this repo are published as scoped packages under @nguniversal

Universal "Gotchas"

Moved to /docs/gotchas.md

Roadmap

Completed

  • Integrate the platform API into core
  • Support Title and Meta services on the server
  • Develop Express, ASP.NET Core, Hapi engines
  • Angular CLI support for Universal
  • Provide a DOM implementation on the server
  • Hooks in renderModule* to do stuff just before rendering to string
  • Generic state transfer API in the platform
  • Http Transfer State Module that uses HTTP interceptors and state transfer API
  • Material 2 works on Universal
  • Write documentation for core API
  • Support AppShell use cases

In Progress

  • Better internal performance and stress tests
  • Make it easier to write unit tests for Universal components
  • Make it easier to support other 3rd part libraries like jQuery/d3 that aren't Universal aware
  • Node.js bridge protocol to communicate with different language backends - Django, Go, PHP etc.

Planning

  • Full client rehydration strategy that reuses DOM elements/CSS rendered on the server

Upgrading from Angular2-Universal

If you're coming from the original angular2-universal (2.x) here are some helpful steps for porting your application to Angular 4 & platform-server.

Go here to find the guide

Preboot

Control server-rendered page and transfer state before client-side web app loads to the client-side-app. Repo

What's in a name?

We believe that using the word "universal" is correct when referring to a JavaScript Application that runs in more environments than the browser. (inspired by Universal JavaScript)

Universal Team

License

MIT License