web-dev-qa-db-fra.com

Erreur dans ionic cordova build Android --prod

ERREUR FATALE: CALL_AND_RETRY_LAST Echec de l'allocation - Mémoire JavaScript insuffisante

Erreur lors de l'exécution de la commande: ionic cordova build Android --prod

Remarque: que construction ionique Android , exécution ionique Android et service ionique tout fonctionne correctement.

J'ai lu de nombreux sujets qui disent qu'une fois le projet grand, il cesse de fonctionner. 

Il travaillait la veille de l'arrivée du numéro. Il a cessé de fonctionner car nous avons ajouté plus de fichiers et JSON pour la traduction de l'application en plusieurs langues.

Est-ce un problème connu? y-a-t'il une solution?

VEUILLEZ CONSULTER PLUS DE DÉTAIL: https://youtu.be/oCN7iSt8rzg

Image d'erreur jointe:

 enter image description here

Infos ioniques:

 enter image description here

7
Ankit Maheshwari

Résolu en modifiant mon fichier ionic.cmd dans C:\Users\AppData\Roaming\npm en ajoutant --max_old_space_size . Je mets le mien à 8096 .

@if EXIST "%~dp0\node.exe" (
"%~dp0\node.exe" --max_old_space_size=8096 "%~dp0\node_modules\ionic\bin\ionic" %*
) ELSE (
@SETLOCAL
@set PATHEXT=%PATHEXT:;.JS;=;%
node --max_old_space_size=8096 "%~dp0\node_modules\ionic\bin\ionic" %*
)

Bonne chance! Vérification de la source réelle: https://github.com/ionic-team/ionic-cli/issues/1453

7
Ankit Maheshwari

Mon ionique (Ionic CLI): 3.20.0 et @ ionic/app-scripts: 3.1.8, mais l’erreur persiste.

J'ai corrigé l'erreur en mettant à jour le script de compilation dans package.json

  "scripts": {
    "clean": "ionic-app-scripts clean",
    "build": "node --max-old-space-size=2048 ./node_modules/.bin/ionic-app-scripts build",
    "lint": "ionic-app-scripts lint",
    "ionic:build": "ionic-app-scripts build",
    "ionic:serve": "ionic-app-scripts serve"
  },

ou 

Essayez la commande ci-dessous:

Noeud Sudo --max-old-space-size = 4096/usr/local/bin/ionic cordova build Android --prod

1
Biranchi

J'ai également rencontré cette erreur et je me suis dit qu'augmenter la mémoire allouée était une solution de contournement, car quelque chose devait mal se passer sous le capot.

Si vous utilisez Firebase , il s’avère que c’est le coupable.

Je l'ai changé de "^ 4.12.1" à "4.6.1" (sans le symbole caret) et ai exécuté npm install pour le rétrograder à la version antérieure.

Après cela, j’ai pu exécuter ionic cordova build Android --prod sans rencontrer l’erreur redoutée "heap out of memory".

Apparemment, 4.12.1 (et peut-être d'autres) a une fuite de mémoire, d'où le problème rencontré.

J'espère que cela t'aides!

1
Gregordy

Même si le problème est résolu par le PO, il s’agit d’une solution de contournement temporaire. Le problème est lié aux opérations sur les chaînes impliquées dans le projet.

Comme l'OP a déjà mentionné que le projet implique des chaînes JSON de taille énorme, le correctif idéal consistera à suivre la consommation de mémoire au cours de la construction à l'aide d'outils tels que node-memwatch, et à les corriger. Définir une taille de tas d'environ 8 Go peut ne pas être possible tout le temps et cela doit également augmenter avec les améliorations ultérieures apportées au projet.

Toujours selon ce lien link , la dernière version de Webpack devrait permettre de résoudre certains de ces problèmes.

UPDATE: vous pouvez également essayer d’utiliser la dernière version de Ionic CLI 3.5.0, qui pourrait apporter certaines améliorations.

0
Gandhi