From 8423233f445dc3929b46ede16a840a6936fee56c Mon Sep 17 00:00:00 2001 From: SteveSandersonMS Date: Wed, 22 Jun 2016 17:02:11 +0100 Subject: [PATCH] Update to angular2-universal 0.103.0 and amend boot-server.ts to fix "there can only be one platform" issue --- .../Angular2Spa/ClientApp/boot-server.ts | 35 ++++++++++--------- templates/Angular2Spa/package.json | 2 +- 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/templates/Angular2Spa/ClientApp/boot-server.ts b/templates/Angular2Spa/ClientApp/boot-server.ts index 752337f..959b90e 100644 --- a/templates/Angular2Spa/ClientApp/boot-server.ts +++ b/templates/Angular2Spa/ClientApp/boot-server.ts @@ -1,32 +1,33 @@ import 'angular2-universal/polyfills'; import * as ngCore from '@angular/core'; -import * as ngRouter from '@angular/router-deprecated'; import * as ngUniversal from 'angular2-universal'; import { BASE_URL, ORIGIN_URL, REQUEST_URL } from 'angular2-universal/common'; import { App } from './components/app/app'; -export default function (params: any): Promise<{ html: string, globals?: any }> { - const serverBindings = [ - ngCore.provide(BASE_URL, { useValue: '/' }), - ngCore.provide(ORIGIN_URL, { useValue: params.origin }), - ngCore.provide(REQUEST_URL, { useValue: params.url }), - ...ngUniversal.NODE_PLATFORM_PIPES, - ...ngUniversal.NODE_ROUTER_PROVIDERS, - ...ngUniversal.NODE_HTTP_PROVIDERS, - ]; +const bootloader = ngUniversal.bootloader({ + async: true, + preboot: false, + platformProviders: [ + ngCore.provide(BASE_URL, { useValue: '/' }) + ] +}); - let bootloader = ngUniversal.bootloader({ +export default function (params: any): Promise<{ html: string, globals?: any }> { + const config: ngUniversal.AppConfig = { directives: [App], - componentProviders: serverBindings, - async: true, - preboot: false, + providers: [ + ngCore.provide(REQUEST_URL, { useValue: params.url }), + ngCore.provide(ORIGIN_URL, { useValue: params.origin }), + ...ngUniversal.NODE_PLATFORM_PIPES, + ...ngUniversal.NODE_ROUTER_PROVIDERS, + ...ngUniversal.NODE_HTTP_PROVIDERS, + ], // TODO: Render just the component instead of wrapping it inside an extra HTML document // Waiting on https://github.com/angular/universal/issues/347 template: '\n' - }); + }; - return bootloader.serializeApplication().then(html => { - bootloader.dispose(); + return bootloader.serializeApplication(config).then(html => { return { html }; }); } diff --git a/templates/Angular2Spa/package.json b/templates/Angular2Spa/package.json index e76863d..690542d 100644 --- a/templates/Angular2Spa/package.json +++ b/templates/Angular2Spa/package.json @@ -27,7 +27,7 @@ "@angular/platform-server": "2.0.0-rc.1", "@angular/router": "2.0.0-rc.1", "@angular/router-deprecated": "2.0.0-rc.1", - "angular2-universal": "0.100.3", + "angular2-universal": "0.103.0", "aspnet-prerendering": "^1.0.2", "aspnet-webpack": "^1.0.1", "css": "^2.2.1",