Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

"Maximum call stack size exceeded" in Angular 9 ng build --prod for a library

I have a library that I'm able to compile with Angular 9. But if I change the flag to --prod, which practically makes "enableIvy": false then I get

[error] RangeError: Maximum call stack size exceeded

at Object.pathIsRelative (...\node_modules\typescript\lib\typescript.js:5778:34)

at tryLoadModuleUsingPathsIfEligible (...\node_modules\typescript\lib\typescript.js:28346:37)

at tryLoadModuleUsingOptionalResolutionSettings (...\node_modules\typescript\lib\typescript.js:28334:24)

at tryResolve (...\node_modules\typescript\lib\typescript.js:28479:28)

at ...\node_modules\typescript\lib\typescript.js:28471:69

at Object.forEach (...\node_modules\typescript\lib\typescript.js:309:30)

at nodeModuleNameResolverWorker (...\node_modules\typescript\lib\typescript.js:28471:25)

at nodeModuleNameResolver (...\node_modules\typescript\lib\typescript.js:28464:16)

at Object.resolveModuleName (...\node_modules\typescript\lib\typescript.js:28238:30)

at CompilerHostAdapter.getMetadataFor (...\node_modules@angular\compiler-cli\src\metadata\bundler.js:567:37)

I introduced a console debug message in function tryLoadModuleUsingPathsIfEligible(extensions, moduleName, loader, state) function and it seems to be a loop with approximately 20 moduleNames. I have to mention that I do NOT have any circular dependency warning if I compile without --prod flag.

Update: I fixed the circular dependencies and I have no more warnings of sort.

like image 796
Adrian Ber Avatar asked Jul 07 '20 07:07

Adrian Ber


1 Answers

I had the same problem with angular 12.1.1, I had no circular dependenicies, the solutution was to change "enableIvy: false" to "compilationMode": "partial".

See angular docs.

like image 95
Sh Svyatoslav Avatar answered Oct 02 '22 14:10

Sh Svyatoslav