ERREUR FATALE: Marque inefficace-Les compacts près de l'allocation de limite de tas ont échoué-tas JavaScript en mémoire dans ionic 3


Lorsque j'exécute le projet ionic 3 en utilisant la commande "ionic serve", j'obtiens cette erreur:

entrez la description de l'image ici

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

28 answers

Pour une réponse générale non angulaire pour ceux qui atterrissent sur cette question de Google:

Chaque fois que vous rencontrez cette erreur, c'est probablement à cause d'une fuite de mémoire ou d'une différence entre la façon dont Node 10 gèrent la mémoire. Habituellement, le simple fait d'augmenter la mémoire allouée au nœud permettra à votre programme de s'exécuter mais ne résoudra peut-être pas le vrai problème et la mémoire utilisée par le processus du nœud pourrait toujours dépasser la nouvelle mémoire que vous allouez. Je conseillerais de profiler l'utilisation de la mémoire dans votre processus de nœud lorsqu'il commence à s'exécuter ou à se mettre à jour vers node > 10.

J'ai eu une fuite de mémoire. Voici un excellent article sur le débogage des fuites de mémoire dans le nœud.

Cela dit, pour augmenter la mémoire, dans le terminal où vous exécutez votre processus de nœud:

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

Où les valeurs de max-old-space-size peut être: [2048, 4096, 8192, 16384], etc

[UPDATE] Plus d'exemples pour plus de clarté:

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

Dans mon cas, corrigez ce problème en installant NodeJS, version 12.10.0

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

Même problème sur centos server 7, mais cela a résolu mon problème:

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

X = (2048 or 4096 or 8192 o..) est la valeur de la mémoire

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

Essayez cette solution qui a été indiquée dans un ancien message sur le forum: https://forum.ionicframework.com/t/3-7-0-ios-build-with-prod-not-working/107061/24

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

Changer la première ligne de:

#!/usr/bin/env node

À

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

Essayez les valeurs 1024 et 2048, mais pour une application relativement grande, vous aurez peut-être besoin de 4096.

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

J'ai eu la même erreur lorsque j'exécute la commande ng build dans le code Visual Studio. Mais je peux construire avec succès lorsque j'exécute la même chose dans la ligne de commande Windows dans la séquence suivante.

Étape 1.

set NODE_OPTIONS=--max_old_space_size=4096

Étape 2.

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

J'ai reçu le même message d'erreur lorsque j'exécute les instructions suivantes dans le code Visual Studio. Mais je peux construire avec succès lorsque j'exécute la même chose en ligne de commande 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

Pour certaines raisons, toute la réponse ci-dessus n'a pas vraiment fonctionné pour moi, j'ai fait ce qui suit pour résoudre mon problème:

  1. J'ai d'abord dû supprimer le dossier node_modules
  2. réinstallez le nœud.js sur mon PC et
  3. , puis npm install
 7
Author: sambayour, 2020-01-14 12:00:54

Node max max_old_space_size=4096 ./node_modules/@angulaire/cli/bin/ng build --prod --build-optimiseur de

L'ajout du paramètre --build-optimizer a résolu le problème dans mon cas.

Mise à Jour:

Je ne sais pas pourquoi l'ajout de only build build-optimizer résout le problème, mais selon angular docs, il devrait être utilisé avec aot activé, donc la commande mise à jour devrait être comme ci-dessous

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

Documents de construction angulaires

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

Exécutez cette commande dans votre dossier de projet. Utiliser servir au lieu de les renforcer

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

Remplacer la ligne

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

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

REMARQUE:

  1. Le port--4300 n'est pas constant dépend du port que vous sélectionnez.

  2. --max_old_space_size=5096 trop pas constante; toute valeur 1024,2048,4096 etc

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

Dans mon cas, c'était une récursion qui faisait que react utilisait toute la mémoire.

Cela s'est produit lorsque je refactorisais mon code et que je ne l'ai pas remarqué.

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

Dans d'autres applications de nœud, cela peut ressembler à:

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

Pour moi, c'était un problème avec le paquet firebase.

Ajoutez uniquement "@firebase/database": "0.2.1", pour votre package.json, réinstaller node_modules et fonctionne.

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

La mise à jour du nœud 12 vers le nœud 14 a résolu le problème pour moi

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

J'ai supprimé le module de nœud existant et exécuté les commandes ci-dessous pour résoudre mon problème

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

Veuillez vérifier la version de votre nœud:

   $  node -v

Si c'est quelque chose 10.1.1, alors vous devez mettre à jour votre version de nœud de niveau racine via les commandes ci-dessous

$ 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

Une fois terminé, redémarrez votre terminal ou visual studio.

C'est du travail 100 {

Pour ionique utilisateur pls ajouter le code ci-dessous dans votre paquet.json pour l'utilisateur ionique

 "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

Une autre réponse non angulaire (je faisais face au même problème en construisant une application react sur AWS Amplify).

Comme mentionné par Emmanuel, il semble que cela provienne de la différence dans la façon dont la mémoire est gérée par le nœud v10 par rapport au nœud v12.

J'ai essayé d'augmenter la mémoire en vain. Mais l'utilisation du nœud v12 l'a fait.

Vérifier comment vous pouvez ajouter nvm use $VERSION_NODE_12 à vos paramètres de construction de la , comme expliqué par 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

Pour moi, le problème était d'avoir un supplément de node_modules dossier que j'ai renommé node_modules_old et l'exécution d'une npm install pour générer une nouvelle node_modules. D'une manière ou d'une autre, la version devait toujours récupérer le dossier node_modules_old, j'ai donc déplacé node_modules_old hors du répertoire pour résoudre le problème.

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

Il suffit de taper ceci dans le terminal:

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

Pour moi, j'ai eu une erreur de syntaxe (qui n'est pas apparue) et a provoqué cette erreur.

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

Vérifiez le nom de votre dossier. Si votre nom de dossier a des espaces, ce genre de problèmes va générer. Renommer sans espaces. espérons que cela fonctionnera.

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

Si cela se produit lors de l'exécution de l'application React sur VSCode, veuillez vérifier vos PropTypes, undefined Proptypes conduit au même problème.

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

Pour moi, j'ai eu cette erreur parce que j'ai perdu l'accès au chemin de sortie pour le dossier dist défini dans mon angulaire.fichier json. Après m'être reconnecté au chemin distant avec les informations d'identification mises à jour, l'erreur a disparu.

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

#!/usr/bin/env nœud --max-vieux-espace-taille=4096 dans le ioniques-app-scripts.js force de travail

Modification

Node_modules/.bin/ionique-app-scripts.cmd

En ajoutant:

@S'IL EXISTE "%~dp0\node.EXE" ( "%~dp0\noeud.exe "" % ~ dp0..Il est possible de créer des scripts pour les applications ioniques.js" %* ) AUTRE ( @ SETLOCAL @SET PATHEXT=%PATHEXT:;.JS;=;% node max max_old_space_size=4096 "% ~ dp0..Il est possible de créer des scripts pour les applications ioniques.js" %* )

Travaillé au total

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

Pour moi, j'ai rencontré ce problème lors de l'exécution d'eslint et de prettier fix et de la formation avec un répertoire build dans mon projet React, après l'avoir supprimé, tout a fonctionné. Je suppose que c'est parce qu'il y a trop de fichiers.

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

Je suppose qu'il ya beaucoup de façons d'atteindre cette erreur!

, de mon côté, j'avais une boucle dans ma package.json. Le projet A avait une dépendance sur le projet B, qui avait une dépendance sur le projet A.

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

Ce problème a disparu, après avoir mis à jour toutes mes bibliothèques comme nodejs, typescript, yarn, npm, etc. pour mon projet.

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

Parfois, la simplicité est la clé du succès. Recherchez while (i <= 10000) {} sans augmenter i dans votre code ;)

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