Tamaño máximo de la pila de llamadas excedido en la instalación de npm

155

Estoy tratando de ejecutar npm install, este es el resultado de la consola:

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>

y esto es contenido de 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 ]

Eliminado node_modulesvarias veces y trató de reinstalar. No puedo entender cuál es la razón que causa esto y cómo solucionarlo.

GROX13
fuente
1
En primer lugar, verificaría el enlace de problemas de github para problemas similares y lo agregaría si no es un problema conocido. Además, ¿por qué estás intentando instalar v4.2.6? La última compilación actual es v7.1.0, y la compilación estable recomendada es v6.9.1. Despeja todo, prueba 6.9.1 y actualiza la pregunta.
TheEnvironmentalist
1
Actualizado a v6.9.1 todavía tiene el mismo error y pregunta actualizada también. Gracias de todos modos TheEnvironmentalist
GROX13
1
Algunos consejos por aquí github.com/npm/npm/issues/10776
Boris Charpentier
En mi caso, esto se debió a una declaración recursiva en package.json;)
Alberto S.
en mi caso, fue causado porque había perdido la conexión a internet
RayJ_inSJ

Respuestas:

96

La respuesta de metzelder me ayudó a solucionar el problema. sin embargo, si ejecuta el comando npm cache clean, le dará un mensaje

A partir de npm @ 5, el caché npm se recupera automáticamente de los problemas de corrupción y se garantiza que los datos extraídos del caché sean válidos

Entonces, a partir de npm5, puede hacerlo agregando una --forcebandera al comando.

Entonces el comando es:

npm cache clean --force
djangodude
fuente
143
Espero que sepas lo que estás haciendo.
CloudMeta
1
En cuanto a mí, había movido el directorio de trabajo actual a otra carpeta, parece que se mezcló npm. La eliminación de node_modules y la reinstalación hicieron el truco
Philippe Hebert
10
@MetaGuru, explique cuáles son las consecuencias de ejecutar este comando ...
cdalxndr
3
@CTS_AE No creo que el equipo de npm haya agregado ese mensaje como una broma. Debe haber una consecuencia y alguien debería explicarlo.
cdalxndr
2
@cdalxndr Estaba diciendo que se deja como un comentario como una broma / sátira, como una cita directa de npmque en realidad no estaba agregando nada útil, sino más bien un meme en este momento. Puede leer más sobre el comando real aquí: docs.npmjs.com/cli-commands/cache.html explica explícitamente qué hace la fuerza; que todos los elementos de la memoria caché ahora están completamente verificados por su integridad, si algo está dañado, se curará automáticamente, por lo tanto, la memoria caché siempre debe estar en un estado correcto y nunca se borrará a menos que esté intentando recuperar espacio en el disco, por lo que deberá agregar --force. Nota: puede variar según la versión.
CTS_AE
83

npm rebuild ha resuelto mi problema

YYY
fuente
31
¿Alguien puede explicar esta respuesta más? ¿Por qué esto resuelve el problema?
Patrick Szalapski el
3
El paquete eliminado-lock.json y la reconstrucción de npm hicieron el truco para mí
Conoce a Patel el
en mi caso, ciertos archivos en mi carpeta .npm se instalaron como root. La verificación de caché de npm le dice qué está mal.
kirenpillay
Esto hizo el truco. npm cache clean no funcionó en esta ocasión.
Shiva Naru
43

Intenta eliminar package-lock.jsony la node-modulescarpeta:

rm package-lock.json
rm -r node_modules
Марат Зимнуров
fuente
14
Estás matando el propósito de package-lock.json si lo eliminas. Garantiza que sus dependencias serán deterministas.
Eliseu Monar dos Santos
55
Es cierto, pero si no puede instalar su aplicación en una plataforma diferente, entonces no tiene más remedio que hacer esto.
Marc
19

Tuve el mismo problema con npm install. Después de mucha búsqueda, descubrí que eliminar su .npmrcarchivo o su contenido (que se encuentra en %USERPROFILE%/.npmrc) resolverá este problema. Esto funcionó para mí.

Arwa S k
fuente
13
npm uninstall

npm cache clean --force

Estoy usando este método dos pero no funcionó. Después de eliminar módulos de nodo y nuevamente instalar npm pero no funcionó nuevamente. Por último, estoy eliminando package-lock.json y creo un nuevo archivo package-lock.json después de eso usando

npm install

y esta bien !!!

Kerim Kuşcu
fuente
55
Eliminar el archivo package-lock.json lo arregló para mí, ¡Gracias!
Ryan Wilson
11

He superado este problema haciendo lo siguiente:

  • Eliminar todo el contenido de las dependencias npm. Puede encontrar la ubicación de instalación predeterminada de acuerdo con este hilo: https://stackoverflow.com/a/5926706/1850297

  • Antes de ejecutar el npm installcomando, sugiero ejecutarnpm cache clean --force

metzelder
fuente
Mensaje de npm cache clean: "A partir de npm @ 5, la memoria caché npm se repara automáticamente por problemas de corrupción y se garantiza que los datos extraídos de la memoria caché son válidos".
Ian Grainger
7

Yo borré

nodo_módulos

y luego reinstalado por

npm install

Funciono para mi

Umair Khalid
fuente
2
lo suficientemente divertido que tuve que reiniciar, mi computadora además de tus pasos para que funcione, ya que estoy trabajando con wsl
Avshalom
7

En mi caso, actualice a la versión más nueva:

npm install -g npm

AvantContra
fuente
5

Acabo de npm rebuildhacerlo funcionó a las mil maravillas.

Gopi P
fuente
3

npm cache clean regresa debajo del mensaje

A partir de npm @ 5, el caché npm se cura automáticamente de los problemas de corrupción y se garantiza que los datos extraídos del caché serán válidos. Si desea asegurarse de que todo sea coherente, use 'npm cache verificar' en su lugar. Por otro lado, si está depurando un problema con el instalador, puede npm install --cache /tmp/empty-cacheusar un caché temporal en lugar de eliminar el actual.

si ejecuta la verificación de caché npm como se especifica anteriormente, en realidad ejecuta la verificación de caché y la recolección de basura que soluciona el problema

Caché verificado y comprimido (~ \ AppData \ Roaming \ npm-cache_cacache): Contenido verificado: 6183 (447214684 bytes) Contenido recolectado: 16 (653745 bytes) Entradas de índice: 9633

Synster
fuente
Esto fue suficiente para mí. La verificación de caché de npm solucionó el problema de una manera que no lo hizo eliminar node_modules. (Y no iba a destruir el caché o el paquete-lock.json). Sin embargo, estoy bastante seguro de que este es un problema con npm. No puedo ver por qué la verificación de la memoria caché de npm cambiaría algo si realmente se autocura.
Stuart Watt
3

Este problema también puede ocurrir si está intentando instalar un paquete que no existe o si está intentando instalar una versión que no existe.

Melchia
fuente
2

Desinstala el paquete npm y fuerza la limpieza de la memoria caché y cierra el terminal y reinstala el paquete que sea.

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

Luego reinicie el terminal y verifique

Aún no funciona, actualice npm y node a la última versión

Gajendra KS
fuente
2

En caso de que ninguna de estas respuestas funcione para usted, puede ser porque el terminal que está utilizando no es el correcto / su node_modules es utilizado por otra parte de su computadora.

En mi caso, seguí confundiéndome entre este error (se superó el tamaño máximo de la pila de llamadas) y el evento de error de acceso cuando hice un sudo npm i .

La solución fue cerrar mi IDE (que era tormenta web), ejecutar npm ien un terminal básico, y eso fue todo.

Jonathan Simonney
fuente
Cerrar el editor me lo arregló. (Netbeans para mí)
Wim Pruiksma
2

No soy un usuario de Windows , así que si lo eres, intenta revisar el comentario de Rene Knop .

Para los usuarios de Unix / OSX , he eliminado el archivo raíz .npmrc~/.npmrc .
Antes de que vas a intentarlo, por favor , compruebe si no hay nada más necesario allí se puede utilizar este comando para traer todo el contenido en su terminal: cat ~/.npmrc.

Si tienes algo como:

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

para guardar una copia:

cp ~/.npmrc ~/.npmrc_copy

Ahora, intente eliminarlo (funciona para usuarios de bash: Unix / Ubuntu / OSX ...):

rm -f ~/.npmrc

Esto funcionó para mí.
Espero que esto sea útil para otros.

naorz
fuente
2

Lo resolví al 100%. Tenía este problema con la versión de Gulp: 3.5.6.

Debe limpiar el paquete-lock.js y luego ejecutar npm instally funcionó de forma

Hidayat Arghandabi
fuente
1

Intenté todo para solucionar este problema en mi Mac. Creo que el problema comenzó cuando ya había descargado npm de Node.js y luego lo reinstalé con Homebrew mientras seguía un video de Team Treehouse.

Esto es lo que probé:

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

Desde Cómo desinstalo completamente Node.js y lo reinstalo desde el principio (Mac OS X)

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

Esto es lo que funcionó:

Al final, lo único que funcionó para mí fue clonar el repositorio npm-reinstall de GitHub que eliminó por completo todo lo relacionado con npm en mi Mac.

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

Luego tuve que reinstalar node y npm desde Node.js.

Caleb Spindler
fuente
1

El entorno de desarrollo de nuestra empresa se utiliza Artifactorycomo el registro predeterminado para nuestras dependencias NPM, y cuando se ejecutaba npm installera el predeterminado , lo que no funcionó ... así que especificar manualmente el registro npm principal a través de npm install --registry https://registry.npmjs.orgsolucionó este problema para mí ...

Joshua Barker
fuente
1

Estaba enfrentando el mismo error, estaba tratando de instalar broma en uno de los paquetes en un proyecto monorepo.

Si está utilizando Yarn + Learna para empaquetar un proyecto monorepo, deberá navegar a package.json dentro del paquete de destino y luego ejecutar npm installo npm install <package name>.

Shrivathsa
fuente
0

Tuve este problema y se debió a una actualización de mi ejecutable git. Regresé a Git-2.21.0.rc1.windows.1-64-bit y agregué esto a mi ruta de entorno y solucionó mi problema.

Finchy70
fuente
0

Intenté todo para solucionar este problema en mi máquina con Windows 7 como

Reinstalar y reconstruir npm

Por fin, arreglé este pequeño problema de configuración al perder todo el día.

Cómo resolví este problema

Eliminar las configuraciones específicas de mi proyecto en .npmrc global en una ubicación como unidad: / Windows / Users /../. Npmrc

Rajashekhar Reddy
fuente
0

Lo único que finalmente funcionó para mí en Mac fue actualizar del nodo 8.12 a 10.x usando NVM.

Desinstalé todas las demás versiones de Node con NVM, luego instalé 10.x, luego ejecuté nvm alias default node , lo que le dice a NVM que siempre tenga la última versión de nodo disponible en un shell.

Después de eso, ¡mi problema de recarga en vivo desapareció!

bildungsroman
fuente
0

Cambiar a hilo me resolvió el problema.

vgaltes
fuente
0

Para aquellos que tienen este problema al construir una imagen Docker con Jenkins (o cualquier CI), asegúrese de package-lock.jsonque también se copie en el contenedor.

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

Para nosotros, la instalación realmente salió bien, el error solo ocurrió cuando se ejecutó npm prune productionla imagen de producción.

Adam Eri
fuente
Tengo este problema con npm prune y NODE_ENV no configurado en producción. Resuelto eliminando node_modules y npm install de nuevo
Eduardo
0

Si su registro npm predeterminado no es el repositorio npm público (puede verificar esto yendo a su archivo .npmrc o verificando su configuración npm a través de los comandos npm CLI), puede intentar desarmar la configuración del registro para que apunte nuevamente al público repositorio npm. Luego corre de npm installnuevo.

Si tiene dependencias que no están disponibles en el repositorio público npm, intente eliminar temporalmente esas dependencias de package.json. Esto te permitirá correr npm install. Finalmente, revierta las dependencias y la configuración de registro que eliminó y ejecute npm installuna última vez para instalar el resto de sus dependencias.

Xchai
fuente
0

Hoy encontramos este error cuando ejecutamos npm pruneincluso después de ejecutar unnpm cache clean --force .

Versiones

node 13.8.0 
npm 6.13.6

Eliminar el package-lock.jsontrabajado para este caso también. ¡Gracias a todos!

Jeff Hampton
fuente
0

Estaba enfrentando un error similar. Lo rastreé hasta el hecho de que npm no pudo eliminar archivos de las carpetas .bin para una carpeta enlazada de npm. Así que entré y rm -rf todas las carpetas .bin de la carpeta npm link'd.

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

Eso resolvió el problema.

nishant
fuente
0

Me encontré con el mismo problema, pero en mi caso lo he estado usando yarndesde el principio, pero desde algún paquete léame copié el npm installcomando y obtuve este error. Más tarde me di cuenta de queyarn add <package-name> resolvió el problema y se instaló el paquete.

Podría ayudar a alguien en el futuro.

necixy
fuente
0

Los siguientes pasos me ayudaron a resolver este problema:

  1. Detenga todas las tiras reactivas (por ejemplo, comience a construir)
  2. correr npm cache clean --force
  3. correr npm install
ATQSHL
fuente
0
echo 65536 | sudo tee -a /proc/sys/fs/inotify/max_user_watches

funciona para mí en Ubuntu.

Dionis Oros
fuente