首页 > 解决方案 > Angular 9 ng build --prod 中的“超出最大调用堆栈大小”用于库

问题描述

我有一个可以使用 Angular 9 编译的库。但是如果我将标志更改为 --prod,这实际上是这样,"enableIvy": false那么我得到

[错误] RangeError:超过最大调用堆栈大小

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

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

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

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

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

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

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

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

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

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

我在函数中引入了一个控制台调试消息function tryLoadModuleUsingPathsIfEligible(extensions, moduleName, loader, state),它似乎是一个大约 20moduleName秒的循环。--prod我必须提到,如果我在没有标志的情况下编译,我没有任何循环依赖警告。

更新:我修复了循环依赖,我没有更多的警告。

标签: angulartypescriptng-packagr

解决方案


我有同样的问题angular 12.1.1,我没有循环依赖,解决方案是更改"enableIvy: false""compilationMode": "partial".

请参阅角度文档


推荐阅读