typescript - "Maksimal størrelse på kallestakken er overskredet" i Angular 9 ng build --prod for et bibliotek
Jeg har et bibliotek som jeg kan kompilere med Angular 9. Men hvis jeg endrer flagget til --prod, som praktisk talt gjør "enableIvy": false, får jeg
[feil] RangeError: Maksimal kalle-stakkstørrelse overskredet
at Object.pathIsRelative (...\node_modules\typescript\lib\typescript.js:5778:34)
at tryLoadModuleUsingPathsIfEligible (...\node_modules\typescript\lib\typescript.js:28346:37)
ved tryLoadModuleUsingOptionalResolutionSettings (...\node_modules\typescript\lib\typescript.js:28334:24)
at tryResolve (...\node_modules\typescript\lib\typescript.js:28479:28)
på ...\node_modules\typescript\lib\typescript.js:28471:69
på Object.forEach (...\node_modules\typescript\lib\typescript.js:309:30)
ved nodeModuleNameResolverWorker (...\node_modules\typescript\lib\typescript.js:28471:25)
på nodeModuleNameResolver (...\node_modules\typescript\lib\typescript.js:28464:16)
på Object.resolveModuleName (...\node_modules\typescript\lib\typescript.js:28238:30)
på CompilerHostAdapter.getMetadataFor (...\node_modules\angular\compiler-cli\src\metadata\bundler.js:567:37)
Jeg introduserte en konsoll-debug-melding i function tryLoadModuleUsingPathsIfEligible(extensions, moduleName, loader, state)-funksjonen, og det ser ut til å være en løkke med omtrent 20 moduleNames. Jeg må nevne at jeg IKKE får noen advarsel om sirkulær avhengighet hvis jeg kompilerer uten --prod-flagget.
Oppdatering: Jeg har fikset de sirkulære avhengighetene, og jeg har ikke flere advarsler av noe slag.
Svar #1
I mitt tilfelle, med Angular 16, har jeg ved et uhell lagt til en komponent (ikke-standalone) i imports (i stedet for declarations):
@NgModule({
imports: [
CommonModule,
TranslateModule,
AuthModule,
RouterModule,
HeaderComponent, // <- invalid import of a Component
],
declarations: [AvatarComponent],
exports: [AvatarComponent],
providers: [],
})
export class SharedHeaderModule {}
I tillegg er det noen ganger nødvendig å kjøre ng serve på nytt.
Svar #2
Jeg hadde det samme problemet med angular 12.1.1, jeg hadde ingen sirkelavhengigheter, løsningen var å endre "enableIvy: false" til "compilationMode": "partial".
Se Angular-dokumentasjonen.
