【質問】AngularのAppShellの設定はuniversalの設定がないとできないものなのか

ng g app-shell --client-project=shell 
Schematic input does not validate against the Schema: {"clientProject":"shell"} Errors: Data path "" should have required property 'universalProject'.

AppShellを簡易的にcliで実装しようと試したところ、以下のエラーログが出力されました。 AppShell自体、AngularUniversal(SSR)を導入しないと、Anuglarでは導入できないものなのでしょうか? それとも、cliがおかしいのでしょうか?

この機能知らなくて手元で試してみたら、universal無しのクライアントだけのPJでもできました。
コマンドはドキュメント通りに2回打ちました。

ng generate app-shell
ng run my-app:app-shell

環境は以下です。このPJはクライアント専用で @angular/platform-server はng generate app-shellで追加されたものです。

Angular CLI: 9.0.2
Node: 12.16.0
OS: darwin x64

Angular: 9.0.1
... animations, common, compiler, compiler-cli, core, forms
... language-service, platform-browser, platform-browser-dynamic
... router
Ivy Workspace: Yes

Package                           Version
-----------------------------------------------------------
@angular-devkit/architect         0.900.2
@angular-devkit/build-angular     0.900.2
@angular-devkit/build-optimizer   0.900.2
@angular-devkit/build-webpack     0.900.2
@angular-devkit/core              9.0.2
@angular-devkit/schematics        9.0.2
@angular/cdk                      9.0.0
@angular/cli                      9.0.2
@angular/material                 9.0.0
@angular/platform-server          9.0.4
@ngtools/webpack                  9.0.2
@schematics/angular               9.0.2
@schematics/update                0.900.2
rxjs                              6.5.4
typescript                        3.6.5
webpack                           4.41.2

参照したドキュメント
https://angular.io/guide/app-shell

1 Like

あ、ng gで生成されたうち、tsconfig.server.jsonのfilesキーのパスだけ手修正しています。

before

"files": [
    "src/main.server.ts"
  ],

after

"files": [
    "main.server.ts"
  ],

おおお!!そうなんですね!!変な設定があったかもです!確認します!ありがとうございます!