WEBPACK打包报错:CALL_AND_RETRY_LAST Allocation failed,如何解决

前几天打包一直正常,最紧增加了一些文件之后,就报如下错误:
FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - process out of memory

网上搜索都是NODEJS相关的答复和解决办法,WEBPACK应该是有调用NODEJS的,在哪配置的,怎样修改配置解决上述问题?

阅读 16.6k
8 个回答

遇到相同的问题,已解决:
我是用gulp打包时,遇到的上述问题
解决方法1:

进入工程目录,执行

node --max_old_space_size=2048 ./node_modules/.bin/gulp release

ps: gulp release 是的我gulp 打包命令,填写自己的打包命令
    2048 单位是M
    

解决方法2:

全局安装increase-memory-limit
npm install -g increase-memory-limit
进入工程目录,执行:
increase-memory-limit

确实是超内存了,后来调大了内存之后观察,最高的时候能够飙到2.7G。
解决办法:
其实从网上已经查到了解决内存不够的解决办法,就是通过如下参数设置,其中:3000单位是M。
--max_old_space_size=3000
我本来的疑惑是:webpack跟node是啥关系,在哪设置才能对webpack生效。
后来查到了七天学会NodeJS,了解清楚了其中的关系,再设置如上参数就很容易了。
Windows下我们所调用的webpack命令,实际上是调用的webpack.cmd(在npm install时生成的),这个文件就是一个批处理文件,打开就可以看到其中是通过:node webpack.js的方式执行,在node后加上如上参数即可。

另外的方法是加大内存
node --max_new_space_size=4096 app.js
或者
node --max_old_space_size=4096 app.js


stackoverflow里说要升级npm版本:npm install npm@latest -g

  • 可是我都5.0.4版了

超内存了。你编译用的机器配置如何?

新手上路,请多包涵

升级node版本是正解

推荐问题
宣传栏