【问题标题】:"Maximum call stack size exceeded" in Angular 9 ng build --prod for a libraryAngular 9 ng build --prod 中的“超出最大调用堆栈大小”
【发布时间】:2020-10-27 09:19:12
【问题描述】:

我有一个可以用 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) 函数中引入了一个控制台调试消息,它似乎是一个大约有20 个moduleNames 的循环。我必须提到,如果我在没有--prod 标志的情况下编译,我没有任何循环依赖警告。

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

【问题讨论】:

标签: angular typescript ng-packagr


【解决方案1】:

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

angular docs

【讨论】:

  • 解决了我的问题!谢谢!我将一个相当复杂的库升级到 v12,并且一直在寻找循环依赖。
  • 在我使用的 tsconfig 的 angularCompilerOptions 中将 enableIvy 设置为 true 为我解决了这个问题
【解决方案2】:

最后,aber rm -rf node_modules 我还需要做npm cache clean --force - 我还确保我确实更新了所有依赖项。 (不知道这些东西中的哪一个成功了)

【讨论】:

    【解决方案3】:

    遇到同样的问题,在我的例子中,index.ts 的导出无效

    export * from './'
    

    修复它并使用 ng build 再次构建

    【讨论】:

      【解决方案4】:

      尝试删除不必要的导入,如果是这样的话:

      'A'模块导入'B'模块,反之亦然

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-08-22
        • 2020-06-07
        • 2019-07-03
        • 2021-03-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-24
        相关资源
        最近更新 更多