ERRORE FATALE: Mark inefficace-compatta vicino allocazione limite heap non riuscita - JavaScript heap memoria esaurita in ionic 3


Quando eseguo il progetto ionic 3 usando il comando" ionic serve " piuttosto che ottenere questo errore:

inserisci qui la descrizione dell'immagine

Author: Félix Gagnon-Grenier, 2018-11-09

28 answers

Per una risposta generale non angolare per coloro che atterrano su questa domanda da Google:

Ogni volta che si verifica questo errore è probabilmente a causa di una perdita di memoria o di una differenza tra il modo in cui il nodo 10 gestiscono la memoria. Di solito solo aumentare la memoria allocata al Nodo consentirà al programma di eseguire ma potrebbe non risolvere il vero problema e la memoria utilizzata dal processo del nodo potrebbe ancora superare la nuova memoria allocata. Consiglierei di profilare l'utilizzo della memoria in il processo del nodo quando inizia l'esecuzione o l'aggiornamento al nodo > 10.

Ho avuto una perdita di memoria. Ecco un ottimo articolo sul debug delle perdite di memoria nel nodo.

Detto questo, per aumentare la memoria, nel terminale in cui si esegue il processo del nodo:

export NODE_OPTIONS="--max-old-space-size=8192"

Dove i valori di max-old-space-size possono essere: [2048, 4096, 8192, 16384] ecc

[UPDATE] Altri esempi per maggiore chiarezza:

export NODE_OPTIONS="--max-old-space-size=5120" #increase to 5gb
export NODE_OPTIONS="--max-old-space-size=6144" #increase to 6gb
export NODE_OPTIONS="--max-old-space-size=7168" #increase to 7gb
export NODE_OPTIONS="--max-old-space-size=8192" #increase to 8gb

# and so on...

# formula:
export NODE_OPTIONS="--max-old-space-size=(X * 1024)" #increase to Xgb

# Note: it doesn't have to be multiples of 1024. 
# max-old-space-size can be any number of memory megabytes(MB) you have available.
 174
Author: Emmanuel N K, 2020-06-25 16:18:43

Nel mio caso, risolvi questo problema installando NodeJS,versione 12.10.0

 66
Author: Germán Ayala, 2019-09-17 20:00:02

Stesso problema su centos server 7, ma questo ha risolto il mio problema:

node --max-old-space-size=X node_modules/@angular/cli/bin/ng build --prod

Dove X = (2048 or 4096 or 8192 o..) è il valore della memoria

 64
Author: Hakim CHRIFI ALAOUI, 2019-09-11 13:54:53

Prova questa soluzione che è stata indicata in un vecchio messaggio sul forum: https://forum.ionicframework.com/t/3-7-0-ios-build-with-prod-not-working/107061/24

Apri node_modules/@ionic/app-scripts/bin/ionic-app-scripts.js

Cambia la prima riga da:

#!/usr/bin/env node
Da

A

#!/usr/bin/env node --max-old-space-size=4096

Prova i valori 1024 e 2048, ma per un'app relativamente grande potrebbe essere necessario 4096.

 30
Author: runnerpaul, 2018-11-16 18:12:39

Ho ricevuto lo stesso errore quando eseguo il comando ng build nel codice di Visual Studio. Ma posso costruire con successo quando eseguo la stessa cosa nella riga di comando di Windows nella seguente sequenza.

Punto 1.

set NODE_OPTIONS=--max_old_space_size=4096

Punto 2.

ng build
 26
Author: Sushrut Singh Sisodiya, 2020-03-02 09:00:59

Ho ricevuto lo stesso messaggio di errore quando eseguo le seguenti istruzioni nel codice di Visual Studio. Ma posso costruire con successo quando eseguo la stessa cosa nella riga di comando di Windows.

npm install -g increase-memory-limit
increase-memory-limit
set NODE_OPTIONS=--max_old_space_size=4096
ng build -c deploy --build-optimizer --aot --prod --sourceMap
 11
Author: heinels, 2019-11-19 02:47:00
node --max_old_space_size=4096 node_modules/@angular/cli/bin/ng build --baseHref=/baseUrl/ --prod=true
 7
Author: Mohammad lockman, 2019-06-16 12:41:15

Per alcuni motivi tutta la risposta sopra non ha funzionato davvero per me, ho fatto quanto segue per risolvere il mio problema:

  1. Ho dovuto prima eliminare la cartella node_modules
  2. reinstallare il nodo.js sul mio PC e
  3. poi npm install
 7
Author: sambayour, 2020-01-14 12:00:54

Nodo max max_old_space_size=4096 ./ node_modules / @ angular/cli / bin / ng build pro prod build build-optimizer

L'aggiunta del parametro --build-optimizer ha risolto il problema nel mio caso.

Aggiornamento:

Non sono sicuro del motivo per cui l'aggiunta solo di build build-optimizer risolve il problema, ma come da angular docs dovrebbe essere usato con aot abilitato, quindi il comando aggiornato dovrebbe essere come sotto

--build-optimizer=true --aot=true

Documenti di compilazione angolari

 6
Author: Akshay Naik, 2020-07-29 14:34:52

Eseguire questo comando nella cartella del progetto. Usa serve invece di costruire

node --max_old_space_size=8000 node_modules/@angular/cli/bin/ng serve  --prod --port=4202
 5
Author: Deepu Reghunath, 2019-10-03 10:18:10

Sostituire la riga

"start": "ng serve -o --port 4300 --configuration=en" con

"start": "node --max_old_space_size=5096 node_modules/@angular/cli/bin/ng serve -o --port 4300 --configuration=en"

NOTA:

  1. La porta 4 4300 non è costante dipende dalla porta selezionata.

  2. --max_old_space_size = 5096 troppo non costante; qualsiasi valore 1024,2048,4096 ecc

 5
Author: Sarath Mohandas, 2020-02-06 10:25:19

Nel mio caso era una ricorsione che stava causando react per consumare tutta la memoria.

Questo è successo quando stavo refactoring il mio codice e non l'ho notato.

const SumComponent = () => {
  return (
    <>
      <SumComponent />
    </>
  ) 
}

In altre applicazioni nodo questo potrebbe essere simile a:

const someFunction = () => {
  ...
  someFunction(); 
  ...
}
 5
Author: Rusty, 2020-03-19 20:21:53

Per me è stato un problema con il pacchetto firebase.

Aggiungi solo "@ firebase / database":" 0.2.1", per il tuo pacchetto.json, reinstallare node_modules e funziona.

 3
Author: Pol Fernández, 2019-04-15 07:24:02

L'aggiornamento dal nodo 12 al nodo 14 ha risolto il problema per me

 3
Author: Hakan Fıstık, 2020-11-12 12:39:39

Ho eliminato il modulo nodo esistente ed eseguito i comandi seguenti per risolvere il mio problema

npm install -all
npm audit fix
 2
Author: Pritiranjan Swain, 2019-12-09 15:04:33

Pls controllare la versione del nodo:

   $  node -v

Se è 10.1.1 qualcosa, è necessario aggiornare la versione del nodo di livello root tramite i comandi seguenti

$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash


$ source ~/.nvm/nvm.sh

$ nvm ls

$ nvm install 12.18.1

Una volta fatto pls riavviare il terminale o visual studio.

È lavoro 100 {

Per l'utente ionico pls aggiungere il codice qui sotto nel vostro pacchetto.json per l'utente ionico

 "ionic:build": "node --max-old-space-size=16384 ./node_modules/@ionic/app-scripts/bin/ionic-app-scripts.js build",
    
 2
Author: Yogesh Kumar, 2020-06-25 14:35:46

Un'altra risposta non angolare (stavo affrontando lo stesso problema creando un'app react su AWS Amplify).

Come menzionato da Emmanuel sembra che derivi dalla differenza nel modo in cui la memoria viene gestita dal nodo v10 rispetto al nodo v12.

Ho cercato di aumentare la memoria senza alcun risultato. Ma usando il nodo v12 lo ha fatto.

Controlla come aggiungere nvm use $VERSION_NODE_12 alle impostazioni di compilazione come spiegato da richard

frontend:
  phases:
    preBuild:
      commands:
        - nvm use $VERSION_NODE_12
        - npm ci
    build:
      commands:
        - nvm use $VERSION_NODE_12
        - node -v
        - npm run-script build
 2
Author: kartonnade, 2021-01-09 21:15:49

Per me, il problema era avere una cartella node_modules aggiuntiva che ho rinominato in node_modules_old e l'esecuzione di un npm install per generare un nuovo node_modules. In qualche modo la build deve aver ancora raccolto la cartella node_modules_old, quindi ho spostato node_modules_old fuori dalla directory per risolvere il problema.

 1
Author: badjr, 2020-05-18 21:05:02

Basta digitare questo nel terminale:

export NODE_OPTIONS="--max-old-space-size=8192"
 1
Author: Matt, 2020-11-05 23:34:41

Per me, ho avuto un errore di sintassi (che non si è presentato) e ha causato questo errore.

 1
Author: JoshuaRDBrown, 2020-11-21 17:58:26

Controlla il nome della cartella. Se il nome della cartella ha spazi, questo tipo di problemi genererà. Rinominare senza spazi. spero che funzioni.

 0
Author: Roney Francis, 2019-11-28 10:12:53

Se ciò accade durante l'esecuzione dell'applicazione React su VSCode, controlla i tuoi propTypes, i Proptypes indefiniti portano allo stesso problema.

 0
Author: kishorekumaru, 2020-01-21 22:58:03

Per me ho ricevuto questo errore perché ho perso l'accesso al percorso di output per la cartella dist impostata nel mio angolare.file json. Dopo essermi ricollegato al percorso remoto con credenziali aggiornate, l'errore è andato via.

 0
Author: justTech, 2020-02-28 23:25:30

#!/usr / bin / env node max max-old-space-size=4096 negli script ionic-app.js dint work

Modifica di

Node_modules/.bin / ionic-app-script.cmd

Aggiungendo:

@SE ESISTE "%~dp0\node.exe" ( "%~dp0\node.exe "" % ~dp0..@ ionic \ app-scripts \ bin \ ionic-app-scripts.js" %* ) ALTRO ( @ SETLOCAL @ SET PATHEXT= % PATHEXT:;.JS;=;% nodo max max_old_space_size=4096 "% ~ dp0..@ ionic \ app-scripts \ bin \ ionic-app-scripts.js" %* )

Lavorato fianlly

 0
Author: Subhamay, 2020-07-04 08:37:06

Per me, ho riscontrato questo problema quando eseguivo eslint e una correzione più carina e formavo con una directory build nel mio progetto React, dopo averlo rimosso tutte le cose hanno funzionato. Immagino che questo sia perché ci sono troppi file.

 0
Author: Sean, 2020-08-11 13:38:23

Immagino che ci siano molti modi per raggiungere questo errore!

Dalla mia parte, ho avuto un ciclo nel mio package.json. Il progetto A aveva una dipendenza dal progetto B, che aveva una dipendenza dal progetto A.

 0
Author: Remi, 2020-08-19 11:42:34

Questo problema era sparito, dopo aver aggiornato tutte le mie librerie come nodejs, typescript, yarn, npm, ecc.

 0
Author: Oguzhan KIRCALI, 2020-10-19 07:51:35

A volte la semplicità è la chiave del successo. Cerca while (i <= 10000) {} senza aumentare i nel tuo codice ;)

 -4
Author: Matthis Kohli, 2020-10-06 04:27:48