问题
当使用NodeJS的atool-build对前端项目进行打包时,出现了JavaScript heap out of memory错误(内存溢出),如下:
异常截图.png
原因
出现这个问题的原因,是因为NodeJS给JavaScript设置了默认内存使用限制(32位系统下0.7GB,64位系统下1.4GB),就算我们的电脑内存是64GB的,在使用atool-build打包时也要遵循这个内存使用限制。
在用atool-build对项目进行打包时,如果项目比较小,代码比较少,一般不会超过这个限制;但如果项目比如大,文件比较多,代码又比较多,那么就可能超过这个限制,抛出JavaScript heap out of memory内存溢出错误。
解决办法
既然知道了原因,就有了解决办法:手动调大这个限制,比如将这个限制调整为4GB(再不行就调为8GB),这样就算项目比较大,也不容易达到限制导致错误发生。
打开项目目录下node_modules的子目录.bin,找到atool-build.cmd这个命令文件(如果使用的是webpack,那么就找到此目录下的webpack.cmd文件),然后使用文本编辑器打开此文件,在箭头所指的位置加上--max_old_space_size=4096然后保存(单位为MB,例如此处的4096就是4GB的意思)。
重新执行打包命令,问题解决
网友评论