Para tornar a extração de metadados no compilador Angular mais rápida, os decorators @NgModule, @Pipe, @Component, @Directive e @Injectable aceitam apenas objetos literais como argumentos.
Esta é uma mudança intencional no Ivy, que impõe requisitos de argumentos mais rigorosos para decorators do que o View Engine. O Ivy requer essa abordagem porque compila decorators movendo as expressões para outros locais na saída da classe.
Depurando o erro
Mova todas as declarações:
const moduleDefinition = {…}@NgModule(moduleDefinition)export class AppModule {constructor() {}}
para dentro do decorator:
@NgModule({…})export class AppModule {constructor() {}}