Skip to content

App Shell builder fails with Ivy #15383

Closed
@filipesilva

Description

@filipesilva

The builder for App Shell will fail with Ivy as of 9.0.0-next versions of FW/CLI.

It's hard to reproduce with a new project but it can be seen when using #15384, running the works (basic) spec in packages/angular_devkit/build_angular/test/app-shell/app-shell_spec_large.ts, and wrapping the _renderUniversal inside packages/angular_devkit/build_angular/src/app-shell/index.ts in a trycatch, logging the error.

The error will be:

{ Error: Can't resolve all parameters for ApplicationModule: (?).
    at syntaxError (D:\work\packages\compiler\src\util.ts:100:17)
    at CompileMetadataResolver._getDependenciesMetadata (D:\work\packages\compiler\src\metadata_resolver.ts:957:27)
    at CompileMetadataResolver._getTypeMetadata (D:\work\packages\compiler\src\metadata_resolver.ts:836:20)
    at CompileMetadataResolver.getNgModuleMetadata (D:\work\packages\compiler\src\metadata_resolver.ts:680:18)
    at CompileMetadataResolver.getNgModuleSummary (D:\work\packages\compiler\src\metadata_resolver.ts:450:31)
    at D:\work\packages\compiler\src\metadata_resolver.ts:586:44
    at Array.forEach (<anonymous>)
    at CompileMetadataResolver.getNgModuleMetadata (D:\work\packages\compiler\src\metadata_resolver.ts:569:43)
    at CompileMetadataResolver.getNgModuleSummary (D:\work\packages\compiler\src\metadata_resolver.ts:450:31)
    at D:\work\packages\compiler\src\metadata_resolver.ts:548:20
    at Array.forEach (<anonymous>)
    at CompileMetadataResolver.getNgModuleMetadata (D:\work\packages\compiler\src\metadata_resolver.ts:521:43)
    at CompileMetadataResolver.getNgModuleSummary (D:\work\packages\compiler\src\metadata_resolver.ts:450:31)
    at D:\work\packages\compiler\src\metadata_resolver.ts:548:20
    at Array.forEach (<anonymous>)
    at CompileMetadataResolver.getNgModuleMetadata (D:\work\packages\compiler\src\metadata_resolver.ts:521:43)
    at JitCompiler._loadModules (D:\work\packages\compiler\src\jit\compiler.ts:127:49)
    at JitCompiler._compileModuleAndComponents (D:\work\packages\compiler\src\jit\compiler.ts:107:32)
    at JitCompiler.compileModuleAsync (D:\work\packages\compiler\src\jit\compiler.ts:61:33)
    at CompilerImpl.compileModuleAsync (D:\work\packages\platform-browser-dynamic\src\compiler_factory.ts:58:27)
    at compileNgModuleFactory__PRE_R3__ (D:\work\packages\core\src\application_ref.ts:50:19)
    at PlatformRef.bootstrapModule (D:\work\packages\core\src\application_ref.ts:307:12)
    at Object.renderModule (D:\work\packages\platform-server\src\utils.ts:103:37)
    at Promise.resolve.then.then (D:\work\cli\packages\angular_devkit\build_angular\src\app-shell\packages\angular_devkit\build_angular\src\app-shell\index.ts:66:13)
    at ZoneDelegate.invoke (D:\work\cli\node_modules\zone.js\dist\zone-node.js:391:26)
    at Zone.run (D:\work\cli\node_modules\zone.js\dist\zone-node.js:150:43)
    at D:\work\cli\node_modules\zone.js\dist\zone-node.js:910:34
    at ZoneDelegate.invokeTask (D:\work\cli\node_modules\zone.js\dist\zone-node.js:423:31) ngSyntaxError: true }

The error mentions compileNgModuleFactory__PRE_R3__, which makes me think the non-Ivy version FW is being used. This makes sense, because we import @angular/platform-server directly from the app shell builder, and thus will always get the default node entry points and not the ngcc compiled ones.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions