webpack Angular 2 + CLI:超出最大调用堆栈大小时出错

z3yyvxxp  于 2022-11-13  发布在  Webpack
关注(0)|答案(9)|浏览(237)

我有一个问题,我的ng 2项目为3 - 4天。

个版本。

  • Angular /陡度:1.0.0-修订版2
  • 节点:6.9.2
  • 操作系统:x64
  • @Angular /公共:2.4.9
  • @Angular /编译器:2.4.9
  • @角/芯:2.4.9
  • @Angular /形式:2.4.9
  • @角/http:2.4.9
  • @Angular /平台浏览器:2.4.9
  • @Angular /平台-浏览器-动态:2.4.9
  • @Angular /路由器:3.4.9
  • Angular /陡度:1.0.0-修订版2
  • @Angular /编译器-客户端:2.4.9

再现步骤。

我运行ng服务器/ ng测试或ng构建,并且我有:“超出最大堆栈回退大小时发生错误”

失败所指定的记录档。

源自“伽服”

$ ng serve
** NG Live Development Server is running on http://localhost:4200 **
Hash: a73c4ecdb8222366629e
Time: 16536ms
chunk    {0} polyfills.bundle.js, polyfills.bundle.js.map (polyfills) 405 kB {5} [initial] [rendered]
chunk    {1} main.bundle.js, main.bundle.js.map (main) 41.1 kB {4} [initial] [rendered]
chunk    {2} styles.bundle.js, styles.bundle.js.map (styles) 149 kB {5} [initial] [rendered]
chunk    {3} scripts.bundle.js, scripts.bundle.js.map (scripts) 244 kB {5} [initial] [rendered]
chunk    {4} vendor.bundle.js, vendor.bundle.js.map (vendor) 2.75 MB [initial] [rendered]
chunk    {5} inline.bundle.js, inline.bundle.js.map (inline) 0 bytes [entry] [rendered]

ERROR in Maximum call stack size exceeded
webpack: Failed to compile.

在我保存了一次之后一切都好了:

$ ng serve
** NG Live Development Server is running on http://localhost:4200 **
Hash: a73c4ecdb8222366629e
Time: 16536ms
chunk    {0} polyfills.bundle.js, polyfills.bundle.js.map (polyfills) 405 kB {5} [initial] [rendered]
chunk    {1} main.bundle.js, main.bundle.js.map (main) 41.1 kB {4} [initial] [rendered]
chunk    {2} styles.bundle.js, styles.bundle.js.map (styles) 149 kB {5} [initial] [rendered]
chunk    {3} scripts.bundle.js, scripts.bundle.js.map (scripts) 244 kB {5} [initial] [rendered]
chunk    {4} vendor.bundle.js, vendor.bundle.js.map (vendor) 2.75 MB [initial] [rendered]
chunk    {5} inline.bundle.js, inline.bundle.js.map (inline) 0 bytes [entry] [rendered]

ERROR in Maximum call stack size exceeded
webpack: Failed to compile.
webpack: Compiling...
Hash: 02fd7618c3e2de3db52e
Time: 9915ms
chunk    {0} 0.chunk.js, 0.chunk.js.map 926 kB {1} {2} {3} {5} [rendered]
chunk    {1} 1.chunk.js, 1.chunk.js.map 397 kB {0} {2} {3} {5} [rendered]
chunk    {2} 2.chunk.js, 2.chunk.js.map 33.1 kB {0} {1} {3} {5} [rendered]
chunk    {3} 3.chunk.js, 3.chunk.js.map 2.96 kB {0} {1} {2} {5} [rendered]
chunk    {4} polyfills.bundle.js, polyfills.bundle.js.map (polyfills) 405 kB {9} [initial] [rendered]
chunk    {5} main.bundle.js, main.bundle.js.map (main) 41.1 kB {8} [initial] [rendered]
chunk    {6} styles.bundle.js, styles.bundle.js.map (styles) 149 kB {9} [initial] [rendered]
chunk    {7} scripts.bundle.js, scripts.bundle.js.map (scripts) 244 kB {9} [initial] [rendered]
chunk    {8} vendor.bundle.js, vendor.bundle.js.map (vendor) 2.75 MB [initial] [rendered]
chunk    {9} inline.bundle.js, inline.bundle.js.map (inline) 0 bytes [entry] [rendered]
webpack: Compiled successfully.

而对“伽考”来说也是一样。
有什么解决办法吗?

tyky79it

tyky79it1#

我遇到了同样的错误。通过删除不必要的导入来解决
此错误的原因是您有循环模块依赖问题。

例如:

'A'模块导入(依赖于)'B'模块
'B'模块导入(依赖于)'A'模块
我建议你建一个公共模块,其他模块导入公共模块。
如果有不必要的导入**,请删除不必要的导入**。

0yg35tkg

0yg35tkg2#

我发现调试此问题的最佳方法是:

ng serve --aot

如果发现可理解的错误,将退出构建。

brtdzjyr

brtdzjyr3#

如果getter(或方法)返回自身,则会出现循环引用,导致调用堆栈大小超过最大值的异常。

public get test(): any {
    return test;

}
请检查您的代码。

5sxhfpxr

5sxhfpxr4#

在我的例子中,当试图调用它自己的组件的选择器时会发生这种情况(一种循环依赖)。

mklgxw1f

mklgxw1f5#

我曾经面临过这个问题。我忘记了将我的功能路由器模块导入到功能模块,所以我得到了上面的错误。希望它对其他人有帮助。

jmo0nnb3

jmo0nnb36#

删除node_modules文件夹,然后再次运行npm installng serve对我来说很有用。
从这里得到提示:https://github.com/angular/angular-cli/issues/17106

s6fujrry

s6fujrry7#

在我的例子中,我把一个组件放在了错误的子模块中。对于一个放错位置的组件来说,这是一种隐含的错误。例如:

src
|-account
    |-account.modue.ts
|-admin
    |-admin.module.ts
    |-users
        |-user-maintenance.component.ts

account.module.ts
   ...
   @NgModule({
       declarations: [
           UserMaintenanceComponent   // this should be in admin.module.ts
   ...
gk7wooem

gk7wooem8#

由于模块导入的循环依赖性,我得到了这个错误。
A → B,B → A,
我已经解决了这个问题,只需从B中删除A,并添加到app.module.ts中。

krcsximq

krcsximq9#

当我有一个
超出最大调用堆栈时出错

已使用以下命令解决:

ng build --prod --base-href "PATH OF SERVER" --aot=false --build-optimizer=false

相关问题