Vue项目,打包npm run build报错,内存溢出
有两种报错的表现:
1、FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
2、Error [ERR_WORKER_OUT_OF_MEMORY]: Worker terminated due to reaching memory limit: JS heap out of memory
1、2两种均是JavaScript 堆内存耗尽,导致 Node.js 进程崩溃导致。
本质上这是一个node的问题。
解决方法:
1、尝试增加堆内存限制,有全局级和项目级两种方式。
在全局增加堆内存限制
环境变量->系统变量中加上
变量名:NODE_OPTIONS
变量值:--max-old-space-size=8192
(不一定是8192这个值,可以自己修改)
项目级增加堆内存限制(推荐)
"build": "NODE_OPTIONS=--max-old-space-size=8192 vue-cli-service build --mode test"
。 (不一定是8192这个值,可以自己修改)
如果是windows系统可以借助cross-env这个npm包
首先npm i cross-env -D
再修改package.json
中的scripts
"build": "cross-env NODE_OPTIONS=--max-old-space-size=8192 vue-cli-service build --mode test"
2、使用压缩工具,如uglifyjs。目的是减小打包后代码体积。