Dimensione massima dello stack di chiamate superata durante l'installazione di npm


155

Sto cercando di eseguire npm install, questo è l'output dalla console:

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>

e questo è il contenuto di 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 ]

Rimosso node_modulespiù volte e provato a reinstallare. Non riesco a capire qual è il motivo che causa questo e come risolverlo.


1
Prima di tutto, verificherei il link dei problemi di github per problemi simili e lo aggiungerei se non è un problema noto. Inoltre, perché stai cercando di installare v4.2.6? L'attuale build più recente è v7.1.0 e la build stabile consigliata è v6.9.1. Cancella tutto, prova 6.9.1 e aggiorna la domanda.
TheEnvironmentalist

1
Aggiornato alla v6.9.1 ha sempre avuto lo stesso errore e anche la domanda aggiornata. Grazie comunque TheEnvironmentalist
GROX13


nel mio caso, ciò è stato causato da una declinazione ricorsiva in package.json;)
Alberto S.

nel mio caso, è stato causato perché avevo perso la connessione a Internet
RayJ_inSJ

Risposte:


98

La risposta di Metzelder mi ha aiutato a risolvere il problema. tuttavia se si esegue il comando npm cache clean, verrà visualizzato un messaggio

A partire da npm @ 5, la cache npm si auto-guarisce da problemi di corruzione e i dati estratti dalla cache sono garantiti come validi

Quindi, a partire da npm5 puoi farlo aggiungendo un --forceflag al comando.

Quindi il comando è:

npm cache clean --force

145
Spero davvero che tu sappia cosa stai facendo.
CloudMeta,

1
Quanto a me, avevo spostato la directory di lavoro corrente in un'altra cartella - sembra che abbia confuso npm. L'eliminazione di node_modules e la reinstallazione hanno funzionato
Philippe Hebert l'

10
@MetaGuru, per favore, spiega quali sono le conseguenze dell'esecuzione di questo comando ...
cdalxndr

3
@CTS_AE Non credo che il team di npm abbia aggiunto quel messaggio come uno scherzo. Ci deve essere una conseguenza e qualcuno dovrebbe spiegarlo.
cdalxndr,

2
@cdalxndr Stavo dicendo che è lasciato come commento come uno scherzo / satira, come una citazione diretta da npmlui non stava davvero aggiungendo nulla di utile, ma più di un meme a questo punto. Puoi leggere di più sul comando effettivo qui: docs.npmjs.com/cli-commands/cache.html spiega esplicitamente quale forza fa; che tutti gli elementi della cache sono ora completamente verificati per la loro integrità, se qualcosa è corrotto si auto-guarisce, quindi la cache dovrebbe essere sempre in uno stato adeguato e mai cancellata a meno che non si stia cercando di recuperare spazio su disco, quindi sarà necessario aggiungere --force. Nota: può variare in base alla versione.
CTS_AE

84

npm rebuild ha risolto il mio problema


31
Qualcuno può spiegare ulteriormente questa risposta? Perché questo risolve il problema?
Patrick Szalapski il

3
eliminato package-lock.json e npm rebuild hanno fatto il trucco per me
Incontra Patel l'

nel mio caso, alcuni file nella mia cartella .npm sono stati installati come root. La verifica della cache di npm ti dice cosa non va.
Kirirpillay,

Questo ha funzionato. npm cache clean non ha funzionato in questa occasione.
Shiva Naru,

43

Prova a rimuovere package-lock.jsone la node-modulescartella:

rm package-lock.json
rm -r node_modules

14
Stai eliminando lo scopo di package-lock.json se lo elimini. Garantisce che le tue dipendenze siano deterministiche.
Eliseu Monar dos Santos,

5
È vero, ma se non riesci a installare la tua app su una piattaforma diversa, non hai altra scelta che farlo.
Marc

19

Ho avuto lo stesso problema con npm install. Dopo molte ricerche, ho scoperto che la rimozione del .npmrcfile o del suo contenuto (disponibile in %USERPROFILE%/.npmrc) risolverà questo problema. Questo ha funzionato per me.


13
npm uninstall

npm cache clean --force

Sto usando questo metodo due ma non ha funzionato. Dopo aver eliminato i moduli del nodo e di nuovo npm install, ma non ha funzionato di nuovo. Infine, sto eliminando package-lock.json e creo un nuovo file package-lock.json dopo averlo usato

npm install

e ok !!!


5
L'eliminazione del file package-lock.json lo ha risolto per me, grazie!
Ryan Wilson,

11

Ho superato questo problema nel modo seguente:

  • Elimina tutto il contenuto delle dipendenze npm. È possibile trovare il percorso di installazione predefinito in base a questa discussione: https://stackoverflow.com/a/5926706/1850297

  • Prima di eseguire il npm installcomando, suggerisco di eseguirenpm cache clean --force


Messaggio da npm cache clean: "A partire da npm @ 5, la cache npm si auto-guarisce da problemi di corruzione e i dati estratti dalla cache sono garantiti come validi".
Ian Grainger,

7

ho cancellato

node_modules

e quindi reinstallato da

npm install

Ha funzionato per me


2
abbastanza divertente che ho dovuto riavviare, il mio computer oltre ai tuoi passaggi per farlo funzionare, dal momento che sto lavorando con wsl
Avshalom

7

Nel mio caso, aggiorna alla versione più recente:

npm install -g npm


5

Ho appena npm rebuildfunzionato come un fascino.


3

npm cache clean ritorna sotto il messaggio

A partire da npm @ 5, la cache npm si auto-guarisce da problemi di corruzione e i dati estratti dalla cache sono garantiti come validi. Se vuoi assicurarti che tutto sia coerente, usa invece 'npm cache verifica'. D'altra parte, se si sta eseguendo il debug di un problema con il programma di installazione, è possibile npm install --cache /tmp/empty-cacheutilizzare una cache temporanea anziché eseguire il nuking di quella effettiva.

se si esegue la verifica della cache di npm come specificato sopra, viene effettivamente eseguita la verifica della cache e la garbage collection che risolve il problema

Cache verificata e compressa (~ \ AppData \ Roaming \ npm-cache_cacache): contenuto verificato: 6183 (447214684 byte) contenuto garbage-collection: 16 (653745 byte) voci indice: 9633


Questo mi è bastato. npm cache verifica risolto il problema in un modo in cui la rimozione di node_modules no. (E non avevo intenzione di cancellare la cache o il pacchetto-lock.json). Abbastanza sicuro, tuttavia, questo è un problema con npm. Non riesco a capire perché la verifica della cache di npm cambierebbe qualcosa se si auto-guarisse davvero.
Stuart Watt

3

Questo problema può verificarsi anche se stai cercando di installare un pacchetto che non esiste o se stai cercando di installare una versione che non esiste.


2

Si disinstalla il pacchetto npm e si forza la pulizia della cache e la chiusura del terminale e la reinstallazione di qualsiasi pacchetto.

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

Quindi riavviare il terminale e controllare

Continuando a non funzionare, aggiornare sia npm che il nodo all'ultima versione


2

Nel caso in cui nessuna di queste risposte funzioni per te, potrebbe essere perché il terminale che stai usando non è quello giusto / il tuo node_modulesè usato da un'altra parte del tuo computer.

Nel mio caso, ho continuato a giocare tra questo errore (dimensione massima dello stack di chiamate superata) e l'evento di errore di accesso quando ho eseguito un sudo npm i.

La correzione era chiudere il mio IDE (che era webstorm), eseguire npm iin un terminale di base, e basta.


La chiusura dell'editor l'ha risolto per me. (Netbeans per me)
Wim Pruiksma,

2

Non sono un utente Windows , quindi se lo sei, prova a controllare il commento di Rene Knop .

Per gli utenti Unix / OSX , ho rimosso il file root .npmrc~/.npmrc .
Prima hai intenzione di provarlo, si prega di verificare se non c'è niente laggiù necessaria è possibile utilizzare questo comando per portare tutti i contenuti nel vostro terminale: cat ~/.npmrc.

Se hai qualcosa del tipo:

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

per salvare una copia:

cp ~/.npmrc ~/.npmrc_copy

Ora, prova a rimuoverlo (Funziona per utenti bash: Unix / Ubuntu / OSX ...):

rm -f ~/.npmrc

Questo ha funzionato per me.
Spero che questo possa essere utile per gli altri.


2

Ho risolto il 100% Ho riscontrato questo problema con la versione gulp: 3.5.6.

È necessario pulire il pacchetto-lock.js e quindi eseguire npm installe ha funzionato



1

Ho provato di tutto per risolvere questo problema sul mio Mac. Penso che il problema sia iniziato quando avevo già scaricato npm da Node.js e poi reinstallato con Homebrew mentre seguivo un video del Team Treehouse.

Ecco cosa ho provato:

Da 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*

Da Come disinstallare completamente Node.js e reinstallarlo dall'inizio (Mac OS X)

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

Ecco cosa ha funzionato:

Alla fine, l'unica cosa che ha funzionato per me è stata la clonazione del repository npm-reinstall da GitHub che ha rimosso completamente tutto ciò che riguarda npm sul mio Mac.

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

Ho quindi dovuto reinstallare node e npm da Node.js.


1

Il nostro ambiente di sviluppo aziendale utilizza Artifactorycome registro predefinito per le nostre dipendenze NPM, e durante l'esecuzione npm installera predefinito a questo, che non funzionava ... quindi specificando manualmente il registro npm principale tramite npm install --registry https://registry.npmjs.orgrisolto questo problema per me ...


1

Stavo affrontando lo stesso errore, stavo cercando di installare jest in uno dei pacchetti in un progetto monorepo.

Se si utilizza Yarn + Learna per impacchettare un progetto monorepo, sarà necessario passare a package.json all'interno del pacchetto di destinazione e quindi eseguire npm installo npm install <package name>.


0

Ho avuto questo problema ed era dovuto ad un aggiornamento del mio eseguibile git. Sono tornato a Git-2.21.0.rc1.windows.1-64-bit e l'ho aggiunto al mio percorso ambientale e risolto il problema.


0

Ho provato di tutto per risolvere questo problema sul mio computer Windows 7 come

Reinstallazione e ricostruzione di npm

Alla fine, ho risolto questo piccolo problema di impostazione della configurazione sprecando tutto il giorno.

Come ho risolto questo problema

Rimozione delle configurazioni specifiche del mio progetto in .npmrc globale in una posizione come unità: / Windows / Users /../. Npmrc


0

L'unica cosa che alla fine ha funzionato per me su Mac era l'aggiornamento dal nodo 8.12 a 10.x usando NVM.

Ho disinstallato tutte le altre versioni di Node con NVM, quindi ho installato 10.x, quindi ho eseguito nvm alias default node, il che indica a NVM di impostare sempre l'ultima versione del nodo disponibile su una shell.

Dopodiché, il mio problema di ricarica dal vivo è andato via!


0

Passare al filato ha risolto il problema per me.


0

Per coloro che hanno questo problema quando si crea un'immagine Docker con Jenkins (o qualsiasi elemento della configurazione), assicurarsi che package-lock.jsonsia copiato anche nel contenitore.

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

Per noi, l'installazione è andata davvero bene, l'errore si è verificato solo durante l'esecuzione npm prune productionper l'immagine di produzione.


Ho questo problema con npm prune e NODE_ENV non impostato sulla produzione. Risolto rimuovendo node_modules e npm install nuovamente
Eduardo

0

Se il registro npm predefinito è diverso dal repository npm pubblico (è possibile verificarlo accedendo al file .npmrc o controllando la configurazione di npm tramite i comandi CLI di npm), è possibile provare a ripristinare la configurazione del registro in modo che punti nuovamente al pubblico repository npm. Quindi corri di npm installnuovo.

Se si dispone di dipendenze che non sono disponibili nel repository npm pubblico, provare a rimuovere temporaneamente tali dipendenze da package.json. Questo ti permetterà di correre npm install. Infine, ripristina le dipendenze e la configurazione del registro che hai rimosso ed esegui npm installun'ultima volta per installare il resto delle dipendenze.


0

Oggi abbiamo riscontrato questo errore durante l'esecuzione di npm pruneanche dopo aver eseguito un npm cache clean --force.

versioni:

node 13.8.0 
npm 6.13.6

Anche package-lock.jsonin questo caso l'eliminazione ha funzionato. Grazie a tutti!


0

Stavo affrontando un errore simile. L'ho rintracciato nel fatto che npm non è stato in grado di eliminare i file dalle cartelle .bin per una cartella con collegamento npm. Così sono andato dentro e rm -rf tutte le cartelle .bin dalla cartella link npm.

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

Ciò ha risolto il problema.


0

Mi sono imbattuto nello stesso problema, ma nel mio caso ho usato yarndall'inizio ma da un file Leggimi del pacchetto ho copiato il npm installcomando e ho ricevuto questo errore. Successivamente si rese conto che yarn add <package-name>il problema era stato risolto e il pacchetto era installato.

Potrebbe aiutare qualcuno in futuro.


0

I seguenti passaggi mi hanno aiutato a risolvere questo problema:

  1. Ferma tutte le strisce reattive (ad es. Avvia la creazione)
  2. correre npm cache clean --force
  3. correre npm install

0
echo 65536 | sudo tee -a /proc/sys/fs/inotify/max_user_watches

funziona per me su Ubuntu.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.