web-dev-qa-db-ja.com

Angular 2 + CLI:最大呼び出しスタックサイズのエラーを超えました

Ng2プロジェクトに3〜4日間問題があります。

バージョン。

  • @ angular/cli:1.0.0-rc.2
  • ノード:6.9.2
  • os:win32 x64
  • @ angular/common:2.4.9
  • @ angular /コンパイラ:2.4.9
  • @ angular/core:2.4.9
  • @ angular/forms:2.4.9
  • @ angular/http:2.4.9
  • @ angular/platform-b​​rowser:2.4.9
  • @ angular/platform-b​​rowser-dynamic:2.4.9
  • @ angular/router:3.4.9
  • @ angular/cli:1.0.0-rc.2
  • @ angular/compiler-cli:2.4.9

再現手順。

Ng serv/ng testまたはng buildを実行しましたが、「最大呼び出しスタックサイズのエラーが発生しました」

失敗によって与えられたログ。

「ng serve」の後

$ 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.

私が1つの時間を節約し、すべてが大丈夫だった後:

$ 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.

「ng test」も同じです。

これを解決するためのアイデア?

6
Agone

私は同じエラーに遭遇しました。 不要なインポートを削除することで解決

このエラーの原因循環モジュール依存問題があります。

例:

'A'モジュールは 'B'モジュールをインポート(依存)します

「B」モジュールは「A」モジュールをインポート(依存)します

共通モジュールを作成する他のモジュールが共通モジュールをインポートすることをお勧めします。

不要なインポートがある場合不要なインポートを削除

10
Ömer

これをデバッグするために見つけた最良の方法は次のとおりです。

ng serve --aot

理解できるエラーでエラーが見つかった場合は、ビルドを終了します。

11
Alan Crevon

ゲッター(またはメソッド)が自分自身を返す場合、循環参照が発生し、最大呼び出しスタックサイズ超過の例外が発生します。例.

public get test(): any {
    return test;

}

そのためのコードを確認してください。

3
armyllc

私の場合、これは独自のコンポーネントのセレクターを呼び出すときに発生します(循環依存の種類)。

1
Adithya Sai

この問題に直面しました。機能ルーターモジュールを機能モジュールにインポートするのを忘れたため、上記のエラーが発生しました。他の人の役に立つことを願っています。

0
Sathish Kotha

私が持っているとき

最大コールスタックのエラーを超えました

次のコマンドを使用して解決:

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