关于npm前端项目编译时栈溢出 Maximum call stack size exceeded的处理方案

背景:使用vue+elementui的前端项目,使用jenkins进行自动化编译部署,某天在进行编译发版的时候,突然出现 npm ERR! Maximum call stack size exceeded 错误,一直都没法编译成功。

原因:随着前端项目的不断迭代,代码和依赖模块越来越多,编译时需要的内存需要越来越大,默认情况下node.js的编译内存是(32 位系统:约 0.7GB,64 位系统:约 1.7GB),编译内存不够导致编译失败。

处理方案:

前端项目引入跨平台环境变量设置工具cross-env模块,然后设置编译时的内存大小。

步骤一:

在前端项目引入依赖,执行如下命令:

复制代码
npm install --save-dev cross-env

步骤二:对package.json的编译命令里设置内存参数:

复制代码
"build:prod": "cross-env NODE_OPTIONS=--max-old-space-size=4096 vue-cli-service build --mode prod",

对于不同的编译命令,在对应命令前增加 cross-env NODE_OPTIONS=--max-old-space-size=4096 参数即可,我方项目是用 npm run build:tclprod 进行编译的,所以对package.json包的build:prod进行添加参数。

步骤三:执行 npm run build:tclprod 即可正常完成编译。

相关推荐
brzhang1 天前
AI Agent 干不好活,不是它笨,告诉你一个残忍的现实,是你给他的工具太难用了
前端·后端·架构
brzhang1 天前
一文说明白为什么现在 AI Agent 都把重点放在上下文工程(context engineering)上?
前端·后端·架构
reembarkation1 天前
自定义分页控件,只显示当前页码的前后N页
开发语言·前端·javascript
gerrgwg1 天前
React Hooks入门
前端·javascript·react.js
ObjectX前端实验室1 天前
【react18原理探究实践】调度机制之注册任务
前端·react.js
汉字萌萌哒1 天前
【 HTML基础知识】
前端·javascript·windows
ObjectX前端实验室1 天前
【React 原理探究实践】root.render 干了啥?——深入 render 函数
前端·react.js
北城以北88881 天前
Vue--Vue基础(二)
前端·javascript·vue.js
ObjectX前端实验室1 天前
【react18原理探究实践】更新调度的完整流程
前端·react.js
tanxiaomi1 天前
通过HTML演示JVM的垃圾回收-新生代与老年代
前端·jvm·html