recherche

Maison  >  Questions et réponses  >  le corps du texte

node.js - Le package Webpack signale un tas javaScript saturé, comment le résoudre ?

将nodejs从5.1.1升级到6.10.2之后,执行生产环境的打包(`set NODE_ENV=production  && webpack  --config webpack.production.config.js`),控制台报错:“CALL_AND_RETYR_LAST Allocation failed -javascript heap out of memoty”。
![图片描述](/img/bVMNK1)(这是一张图片,为什么上传不了?)
我nodejs版本是6.10.2, npm原本是3.10.X,后台看在stackoverflow上看到有人说把npm更新到最新版就能解决这个问题,npm最后更新到4.5.0。

无论是百度还是stackoverflow,我都找过解决方案(我找到了webpack.cmd,在命令行“node  "%~dp0\node_modules\webpack\bin\webpack.js" %* ”添加 "-max_old_space_size = 2048"参数),并且尝试了,但是没有用,怎么破?
滿天的星座滿天的星座2749 Il y a quelques jours1239

répondre à tous(2)je répondrai

  • 为情所困

    为情所困2017-05-16 13:40:41

    Hé, je l'ai finalement fait moi-même. En fait, je trouve maintenant que l'idée que j'ai commencée pour résoudre le problème est correcte, qui consiste à ajouter "--max_old_space_size" à la ligne de commande du nœud. L'erreur est que je l'ai ajouté au mauvais endroit (peut-être que cela ne fonctionne pas dans mon environnement ?). Au début, j'ai fait référence à la solution fournie par segmentfault sur un problème où le même packaging weback provoquait un débordement de mémoire nodejs, qui consistait à l'ajouter au webpack.cmd global (le chemin est : C:UsersAdministratorAppDataRoamingnpmwebpack.cmd), comme indiqué ci-dessous :

    Mais il a été constaté que cela ne fonctionnait pas. Après avoir exécuté la commande, la mémoire débordait toujours. Ensuite, j'ai lutté pendant longtemps, et le lendemain, j'ai cherché à nouveau la réponse sur stackoverflow et j'ai trouvé cette réponse :

    Donc, j'ai modifié le script de hook npm utilisé pour l'empaquetage dans mon environnement de production en : "set NODE_ENV =production && node --max_old_space_size=2048 node_modules/webpack/bin/webpack.js --config webpack.production.config.js". C'est-à-dire que j'utilise un webpack local/local au lieu d'un webpack installé globalement pour l'empaquetage. Le problème de débordement de mémoire a été résolu en ajoutant "--max_old_space_size=2048" à nodejs pour étendre la mémoire à 2*1024M=2G.

    répondre
    0
  • 天蓬老师

    天蓬老师2017-05-16 13:40:41

    Il y a trop peu de preuves pour résoudre l'affaire !

    répondre
    0
  • Annulerrépondre