npmインストールで最大コールスタックサイズを超えました


154

私は実行しようとしていますnpm install、これはコンソールからの出力です:

npm ERR! Linux 4.8.0-27-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install"
npm ERR! node v6.9.1
npm ERR! npm  v3.10.8

npm ERR! Maximum call stack size exceeded
npm ERR! 
npm ERR! If you need help, you may report this error at:
npm ERR!     <https://github.com/npm/npm/issues>

そしてこれはの内容ですnpm-debug.log

113791 verbose stack RangeError: Maximum call stack size exceeded
113791 verbose stack     at Object.color (/usr/lib/node_modules/npm/node_modules/npmlog/node_modules/console-control-strings/index.js:115:32)
113791 verbose stack     at EventEmitter.log._format (/usr/lib/node_modules/npm/node_modules/npmlog/log.js:252:51)
113791 verbose stack     at EventEmitter.<anonymous> (/usr/lib/node_modules/npm/node_modules/npmlog/log.js:138:24)
113791 verbose stack     at emitThree (events.js:116:13)
113791 verbose stack     at emit (events.js:194:7)
113791 verbose stack     at .<anonymous> (/usr/lib/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker-group.js:23:18)
113791 verbose stack     at emitThree (events.js:116:13)
113791 verbose stack     at emit (events.js:194:7)
113791 verbose stack     at .<anonymous> (/usr/lib/node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker-group.js:23:18)
113791 verbose stack     at emitThree (events.js:116:13)
113791 verbose stack     at emit (events.js:194:7)
113792 verbose cwd /home/giorgi/AdMove/dev/web-advertiser-admove
113793 error Linux 4.8.0-27-generic
113794 error argv "/usr/bin/nodejs" "/usr/bin/npm" "install"
113795 error node v6.9.1
113796 error npm  v3.10.8
113797 error Maximum call stack size exceeded
113798 error If you need help, you may report this error at:
113798 error     <https://github.com/npm/npm/issues>
113799 verbose exit [ 1, true ]

node_modules数回削除され、再インストールしてみました。これを引き起こす原因とそれを修正する方法が理解できません。


1
まず、githubの問題のリンクで同様の問題がないか確認し、既知の問題でない場合は追加します。また、なぜv4.2.6をインストールしようとしているのですか?現在の最新ビルドはv7.1.0で、推奨される安定したビルドはv6.9.1です。すべてをクリアし、6.9.1を試して、質問を更新します。
TheEnvironmentalist 2016年

1
v6.9.1に更新しても、同じエラーが発生し、質問も更新されました。とにかくありがとうTheEnvironmentalist
GROX13

1
ここ周辺のアドバイスgithub.com/npm/npm/issues/10776
Boris Charpentier

私の場合、これはpackage.jsonでの再帰的な宣言が原因で発生しました;)
Alberto S.

私の場合、インターネット接続が失われたことが原因
でした

回答:


96

メッツェルダーの答えが問題の解決に役立ちました。ただし、コマンドを実行するnpm cache cleanと、メッセージが表示されます

npm @ 5以降、npmキャッシュは破損の問題から自己回復し、キャッシュから抽出されたデータは有効であることが保証されています

したがって、npm5以降では--force、コマンドにフラグを追加することで実行できます。

したがって、コマンドは次のとおりです。

npm cache clean --force

143
私はあなたがあなたが何をしているのか知っていると思います。
CloudMeta

1
私に関しては、私は現在の作業ディレクトリを別のフォルダーに移動しました–それはnpmを混同しているようです。node_modulesを削除して再インストールするとうまくいきました
Philippe Hebert

10
@MetaGuruは、このコマンドを実行した結果を説明してください...
cdalxndr

3
@CTS_AE npmチームがそのメッセージをジョークとして追加したとは思わない。結果があるはずであり、誰かがそれを説明する必要があります。
cdalxndr

2
@cdalxndr私はそれが冗談/風刺としてのコメントとして残されていると言っていました、npm彼からの直接の引用は実際には何も役に立たなかったが、現時点ではミームの多くを追加していなかったからです。あなたはここで、実際のコマンドの詳細を読むことができます:docs.npmjs.com/cli-commands/cache.htmlそれは明示的に力が何をするかを説明し、すべてのキャッシュアイテムの整合性が完全に検証されるようになりました。何かが破損している場合は、自己修復されます。したがって、ディスクスペースを再利用しようとしない限り、キャッシュは常に適切な状態であり、クリアされないはずなので、追加する必要があります。--force。注:バージョンによって異なる場合があります。
CTS_AE

83

npm rebuild それは私の問題を解決しました


31
誰かがこの答えをさらに説明できますか?なぜこれで問題が解決するのですか?
Patrick Szalapski、

3
削除されたpackage-lock.jsonとnpm rebuildは私にとってトリックを作りました
Patelに会う

私の場合、.npmフォルダー内の特定のファイルがルートとしてインストールされました。npm cache verifyは何が問題かを通知します。
kirenpillay

これでうまくいきました。この場合、npmキャッシュクリーンは機能しませんでした。
シヴァナル

43

フォルダを削除package-lock.jsonしてみてnode-modulesください:

rm package-lock.json
rm -r node_modules

14
削除すると、package-lock.jsonの目的が失われます。依存関係が確定的であることを保証します。
Eliseu Monar dos Santos

5
確かに、しかし、もしあなたがあなたのアプリを別のプラットフォームにインストールすることができないなら、あなたはこれを行うしかないでしょう。
マーク

19

と同じ問題が発生しましたnpm install。多くの検索の後、私はあなたを削除することがわかりました.npmrcファイルまたはそのコンテンツ(にあります)%USERPROFILE%/.npmrcこの問題が解決することがわかりました。これでうまくいきました。


13
npm uninstall

npm cache clean --force

この2つの方法を使用していますが、機能しませんでした。ノードモジュールを削除した後、npmを再度インストールしましたが、再び機能しませんでした。最後に、package-lock.jsonを削除し、その後に新しいpackage-lock.jsonファイルを作成します。

npm install

そして大丈夫!!!


5
package-lock.jsonファイルを削除すると、修正されました。ありがとう!
ライアンウィルソン

11

私は以下を行うことでこの問題を克服しました:

  • npm依存関係のすべてのコンテンツを削除します。このスレッドに従って、デフォルトのインストール場所を見つけることができます:https : //stackoverflow.com/a/5926706/1850297

  • npm installコマンドを実行する前に、実行することをお勧めしますnpm cache clean --force


からのメッセージnpm cache clean:「npm @ 5以降、npmキャッシュは破損の問題から自己回復し、キャッシュから抽出されたデータは有効であることが保証されています。」
Ian Grainger

7

削除しました

node_modules

それから再インストール

npmインストール

それは私のために働いた


2
おもしろいことに、wslで作業しているため、コンピューターを再起動する必要がありました。これには、コンピューターが動作するための手順に加えて
Avshalom


5

私はnpm rebuildそれが魅力のように働いただけでした。


3

npmキャッシュクリーンがメッセージの下に戻る

npm @ 5以降、npmキャッシュは破損の問題から自己修復し、キャッシュから抽出されたデータは有効であることが保証されています。すべてが一貫していることを確認したい場合は、代わりに「npm cache verify」を使用してください。一方、インストーラーで問題をデバッグしている場合はnpm install --cache /tmp/empty-cache、実際のキャッシュを無効にする代わりに、一時キャッシュを使用できます。

上記のようにnpmキャッシュ検証を実行すると、実際にキャッシュ検証とガベージコレクションが実行され、問題が修正されます。

検証および圧縮されたキャッシュ(〜\ AppData \ Roaming \ npm-cache_cacache):検証済みコンテンツ:6183(447214684バイト)ガベージコレクションされたコンテンツ:16(653745バイト)インデックスエントリ:9633


これで十分です。npmキャッシュ検証により、node_modulesを削除しなかった方法で問題が修正されました。(そして、私はキャッシュやpackage-lock.jsonを核にするつもりはありませんでした)。ただし、これはnpmの問題です。npmキャッシュ検証が本当に自己修復した場合、なぜnpmキャッシュ検証が何かを変更するのかわかりません。
スチュアートワット

3

この問題は、存在しないパッケージをインストールしようとした場合や、存在しないバージョンをインストールしようとした場合にも発生する可能性があります。


2

npmパッケージをアンインストールし、キャッシュを強制的に消去してターミナルを閉じ、いずれかのパッケージを再インストールします。

$sudo npm uninstall <package - name>
$sudo npm cache clean --force

次に、ターミナルを再起動して確認します

それでも機能しないnpmとノードの両方を最新バージョンにアップグレードします


2

これらの答えがどれもうまくいかない場合は、使用している端末が適切でないか、node_modulesコンピュータの別の部分で使用されていることが原因である可能性があります。

私の場合、このエラー(最大のコールスタックサイズを超えています)とアクセスエラーイベントの間でジャングルを実行しましたsudo npm i

修正は、IDE(Webstorm)を閉じ、npm i基本的なターミナルで実行することでした。


エディターを閉じると修正されました。(私にとってのNetbeans)
Wim Pruiksma

2

私はWindowsユーザーではないので、もしそうなら、Rene Knopのコメントをチェックしてみてください。

以下のためのUnix / OSXのユーザー、私は、ルート削除した.npmrcファイルを~/.npmrc
あなたはそれをしようとしている前に、してくださいあそこに必要なものは何も存在しない場合、チェックあなたの端末にすべてのコンテンツを持って来るには、このコマンドを使用することができますcat ~/.npmrc

あなたが次のようなものを持っている場合:

cat: /Users/$USER/.npmrc: No such file or directory

コピーを保存するには:

cp ~/.npmrc ~/.npmrc_copy

今、それを削除してみてください(bashユーザーのために機能します:Unix / Ubuntu / OSX ...):

rm -f ~/.npmrc

これでうまくいきました。
これが他の人に役立つことを願っています。


2

100%解決しました。gulpバージョン3.5.6でこの問題が発生しました。

あなたは、パッケージlock.jsをきれいにしてから実行する必要がありますnpm installし、それはフォームを働きました



1

私はMacでこの問題を解決するためにあらゆることを試みました。問題は、Node.jsからnpmを既にダウンロードしていて、Team Treehouseのビデオに従ってHomebrewで再インストールしたときに始まったと思います。

これが私が試したものです:

https://docs.npmjs.com/misc/removing-npmから

sudo npm uninstall npm -g
sudo make uninstall
sudo rm -rf /usr/local/{lib/node{,/.npm,_modules},bin,share/man}/npm*

どのように完全にNode.jsのアンインストールIを行うには、最初から再インストールする(Mac OS X)

sudo rm -rf /usr/local/{lib/node{,/.npm,_modules},bin,share/man}/{npm*,node*,man1/node*}

これがうまくいきました:

結局、私にとってうまくいった唯一のことは、GitHubからnpm-reinstallリポジトリを複製して、Mac上のnpmに関連するすべてを完全に削除することでした。

https://github.com/brock/node-reinstall

次に、Node.jsからnodeとnpmを再インストールする必要がありました。


1

私たちの会社の開発環境はArtifactory、NPM依存関係のデフォルトレジストリとして使用し、実行時にnpm installこれがデフォルトになり、機能しませんnpm install --registry https://registry.npmjs.orgでした。


1

私は同じエラーに直面していました、monorepoプロジェクトのパッケージの1つにjestをインストールしようとしていました。

Yarn + Learnaを使用してmonorepoプロジェクトをパッケージ化している場合は、ターゲットパッケージ内のpackage.jsonに移動して、npm installまたはを実行する必要がありnpm install <package name>ます。


0

私はこの問題を抱えていましたが、それは私のgit実行可能ファイルのアップグレードが原因でした。Git-2.21.0.rc1.windows.1-64-bitにロールバックし、これを環境パスに追加すると、問題が解決しました。


0

私は私のようなWindows 7マシンでこの問題を修正するためにすべてを試しました

npmの再インストールと再構築

ついに、私はこの小さな構成設定の問題を一日中無駄にすることで修正しました。

この問題を解決した方法

drive:/ Windows / Users /../。npmrcなどの場所にあるグローバル.npmrcのプロジェクト固有の構成を削除する


0

Macでようやく機能したのは、NVMを使用してノード8.12から10.xにアップグレードすることでした。

NVMを使用して他のすべてのバージョンのノードをアンインストールし、次に10.xをインストールしてから実行しましたnvm alias default node。これにより、NVMは常にデフォルトでシェルで使用可能な最新のノードバージョンに設定されます。

その後、私のリロードのライブ問題は消えました!



0

Jenkins(または任意のCI)を使用してDockerイメージを構築するときにこの問題が発生する場合package-lock.jsonは、コンテナにもコンテナがコピーされていることを確認してください。

COPY ./src/package*.json /home/node/
RUN npm install

私たちにとって、インストールは実際にうまくいきました、エラーnpm prune productionは本番イメージで実行しているときにのみ発生しました。


npm pruneでこの問題が発生し、NODE_ENVが本番環境に設定されていません。node_modulesを削除してnpmを再度インストールすることで解決
Eduardo

0

デフォルトのnpmレジストリがパブリックnpmリポジトリ以外の場合(.npmrcファイルに移動するか、npm CLIコマンドを使用してnpm構成を確認して確認できます)、レジストリ構成の設定を解除して、パブリックを指すようにすることができますnpmリポジトリ。その後、npm install再度実行します。

パブリックnpmリポジトリで使用できない依存関係がある場合は、package.jsonからそれらの依存関係を一時的に削除してみてください。これにより、を実行できますnpm install。最後に、削除した依存関係とレジストリ構成を元に戻し、最後にもう一度実行してnpm install、残りの依存関係をインストールします。


0

今日、を実行したnpm pruneでも実行すると、このエラーが発生しましたnpm cache clean --force

バージョン:

node 13.8.0 
npm 6.13.6

package-lock.jsonこのケースで動作したものも削除します。皆さん、ありがとうございました!


0

私は同様のエラーに直面していました。npmがnpmリンクされたフォルダーの.binフォルダーからファイルを削除できなかったという事実を追跡しました。そこで、npmリンクされたフォルダーからすべての.binフォルダーをrm -rfしました。

find "linked-folder" -type d -name ".bin" -print  
For all folders listed | rm -rf  

これで問題は解決しました。


0

私は同じ問題に遭遇しましたが、私の場合yarn、最初から使用していましたが、パッケージのreadmeからnpm installコマンドをコピーしてこのエラーが発生しました。後でyarn add <package-name>問題が解決したことに気づき、パッケージがインストールされました。

それは将来誰かを助けるかもしれません。


0

次の手順は、この問題を解決するのに役立ちました。

  1. すべての反応ストリップを停止します(例:ビルドの開始)
  2. 走る npm cache clean --force
  3. 走る npm install

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.