言わずと知れた SSR を触ってみた。サンプルコードは https://angular.io/guide/universal にあり完成されたコードも落とせます。で、サクッと落として動かしてみよう!、、、が、エラーが出る。ので!修正しました!というメモです。

サンプルコードの取得
何はともあれ angular.io からコードをダウンロードします。
https://angular.io/guide/universal
zip でダウンロードされますので解凍し npm i 若しくは yarn を実行します。が、ここでも変更が必要のためやらない!
main.server.ts ファイルの追加
issue にも書かれてますが main.server.ts が抜け落ちてます。src に追加して中身は下記を記載します。
export { AppServerModule } from './app/app.server.module';
https://github.com/angular/angular/issues/21516
nguniversal のバージョンアップ
1系が使われているので5系に変更する。package.json を開き
"@nguniversal/express-engine": "^1.0.0-beta.3", "@nguniversal/module-map-ngfactory-loader": "^1.0.0-beta.3",
を
"@nguniversal/express-engine": "^5.0.0-beta.5", "@nguniversal/module-map-ngfactory-loader": "^5.0.0-beta.5",
とする。ここまでできたので npm i か yarn でモジュールをインストールする
server.ts がエラーになる
ビルド後、実行するとエラーが発生する
$ npm run build:ssr && npm run serve:ssr
> angular-io-example@1.0.0 serve:ssr /Users/albatrosary/Sandbox/ServerModuleSample
> node dist/server.js
/Users/albatrosary/Sandbox/ServerModuleSample/dist/server.js:2230
throw staticError('\'deps\' required', provider);
^
Error: StaticInjectorError[{provide:ResourceLoader, useClass:FileLoader}]: 'deps' required
at staticError (/Users/albatrosary/Sandbox/ServerModuleSample/dist/server.js:2263:12)
at computeDeps (/Users/albatrosary/Sandbox/ServerModuleSample/dist/server.js:2230:15)
at resolveProvider (/Users/albatrosary/Sandbox/ServerModuleSample/dist/server.js:2025:33)
at recursivelyProcessProviders (/Users/albatrosary/Sandbox/ServerModuleSample/dist/server.js:2082:53)
at recursivelyProcessProviders (/Users/albatrosary/Sandbox/ServerModuleSample/dist/server.js:2071:17)
at recursivelyProcessProviders (/Users/albatrosary/Sandbox/ServerModuleSample/dist/server.js:2071:17)
at new StaticInjector (/Users/albatrosary/Sandbox/ServerModuleSample/dist/server.js:1982:9)
at Function.Injector.create (/Users/albatrosary/Sandbox/ServerModuleSample/dist/server.js:1954:16)
at JitCompilerFactory.createCompiler (/Users/albatrosary/Sandbox/ServerModuleSample/dist/server.js:143438:97)
at Object.ngExpressEngine (/Users/albatrosary/Sandbox/ServerModuleSample/dist/server.js:159941:36)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! angular-io-example@1.0.0 serve:ssr: `node dist/server.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the angular-io-example@1.0.0 serve:ssr script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/albatrosary/.npm/_logs/2018-01-17T05_46_58_880Z-debug.log
$
universal-starter を見ると違いがあるので修正し再度ビルドを行う。修正場所が正しいかはあまり調べていない
https://github.com/angular/universal-starter
完成!
下記コマンドでビルド&実行する
npm run build:client-and-server-bundles npm run serve:ssr
めでたしめでたし

完成されたコード
完成されたコードはこちら