Résoudre l'erreur Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory

Lorsque vous travaillez avec la plateforme Ionic, vous pouvez avoir le message d'erreur suivant en lançant votre projet avec la commande "ionic serve" : "Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory". Ce message est dû à un problème de surconsommation de la mémoire par votre application, ce qui empêche son fonctionnement. Il existe plusieurs solutions pour résoudre ce souci.

Ce souci de mémoire peut être présent si votre serveur utilise une version de NodeJS antérieure à la version 10. La version 10 de NodeJS optimise la gestion de la mémoire. Si vous pouvez le faire, mettez à jour votre installation de NodeJS pour passer à une version plus récente que la version 10. Ces nouvelles optimisations vont vous permettre de lancer votre projet. Nous vous conseillons également de contrôler le code de votre application pour vérifier qu'il n'y a pas de fuite de mémoire et que votre code est bien optimisé.

Si vous ne pouvez pas mettre à jour NodeJS, ou si la mise à jour de NodeJS n'a pas suffi pour résoudre votre problème, il est possible d'augmenter la mémoire allouée à NodeJS. Par défaut, il utilise 512 Mo de mémoire. Avant de lancer votre serveur, vous pouvez utiliser la commande "export" afin de modifier la valeur du paramètre "NODE_OPTIONS". L'option "- -max-old-space-size" permet d'allouer une nouvelle quantité de mémoire à NodeJS. Pour définir la quantité, vous devez choisir le nombre de Gigaoctets et le multiplier par 1 024. Si vous souhaitez allouer 1 Go de mémoire, vous devez saisir la valeur 1 024, 2 048 pour 2 Go, etc. Vous pouvez ensuite lancer le serveur, qui aura plus de mémoire.

export NODE_OPTIONS="--max-old-space-size=1024" #augmentation de la mémoire à 1go

JavaScript