关于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 即可正常完成编译。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/91895.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/91895.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序组件发布为 npm 包的具体步骤

1. 准备工作 首先,您需要在系统上安装 Node.js 和 npm。如果尚未安装,请访问 Node.js — Run JavaScript Everywhere 下载并安装最新版本。 2. 创建独立的组件目录 为了更好地管理组件,建议将其从当前项目中独立出来: wechat-…

LCM中间件入门(2):LCM核心实现原理解析

文章目录一、good()函数:LCM实例状态检查的实现原理1. 实现逻辑2. 简化代码示例(C语言核心逻辑)二、publish():向指定channel发送消息的原理1. 完整流程拆解2. 简化代码示例(C核心逻辑)三、subscribe()&…

Nginx安装及配置

一.nginx安装1.1nginx概述1.1.1 nginx介绍Nginx是一款高性能的开源HTTP和反向代理服务器,是免费的、开源的、高性能的HTTP和反向代理服务器、邮件代理服务器、以及TCP/UDP代理服务器解决C10K问题(10K Connections)。同时也支持IMAP/POP3代理服…

SelectDB数据库,新一代实时数据仓库的全面解析与应用

摘要:SelectDB是一款基于Apache Doris的新一代实时数据仓库解决方案,具备实时极速、融合统一、弹性架构和开放生态四大核心特性。它采用云原生存算分离架构,支持秒级数据更新、毫秒级查询响应,在TPC-H等基准测试中性能超越传统系统…

自动驾驶的未来:多模态传感器钻机

伦敦大学学院博士生袁方正在建造多模态传感器钻机,以探索自动驾驶的未来。他的最新设置汇集了一套尖端传感器: 📡 60 GHz 雷达(用于 Raspberry Pi 的 DreamHAT)DreamRF 📷 RGB 深度摄像头 (Real…

13.Redis 的级联复制

Redis 的级联复制 即实现基于Slave节点的Slave 1. 修改 Slave 节点配置文件 # 第一个slave节点 [rootubuntu2204 ~]#vim /apps/redis/etc/redis.conf(大约在533行附近) replicaof 10.0.0.100 6379 masterauth 123456# 第二个slave节点 [rootubuntu2204 ~]#vim /apps/redis/etc/…

spring-ai-alibaba 学习(二十)——graph之检查点

前面学习了graph的基本概念,参数设置,特殊节点和边,今天学习一下检查点检查点可能名称比较抽象,换个名字可能比较容易理解,进度保存点或者存档点,可以类比游戏中保存当前游戏进度的存档进度主要用于人工介入…

sqli-labs:Less-19关卡详细解析

1. 思路🚀 本关的SQL语句为: $insert"INSERT INTO security.referers (referer, ip_address) VALUES ($uagent, $IP)";注入类型:字符串型(单引号包裹)、INSERT操作提示:参数需以闭合关键参数&a…

Java小红书源码1:1还原uniapp_仿小红书源码

在内容驱动型社交平台兴起的背景下,小红书作为图文/视频种草社区的代表,其产品结构与功能体验逐渐成为众多开发者与创业团队的模仿蓝本。本项目基于Java后端uni-app前端栈,完整复刻小红书主要功能,支持多端(小程序、H5…

USB Type-C PD协议一文通

原文:https://www.richtek.com/Design%20Support/Technical%20Document/AN056?sc_langzh-TW译者:TrustZone1、概述 USB Type-C标准的出现是为了满足不断增长的现代设备之间的连接需要,它在传统USB标准的基础上提供了更高的电源传输能力和资料…

AI文档比对和Word的“比较”功能有什么区别?

AI文档比对工具的核心区别在于,它超越了Word的纯文本“找不同”,能精准处理扫描件、表格及印章,并将文档审查从被动的文本核对,处理大文档也更为快速及准确。 为什么Word的“比较”功能已经不够用了? 对于许多专业人士…

AI驱动SEO关键词智能进化

内容概要 随着人工智能(AI)技术的快速演进,搜索引擎优化(SEO)领域正迎来前所未有的变革。本文核心探讨AI如何驱动SEO关键词的智能进化,重点解析人工智能革新关键词研究与优化策略的机制,包括智能…

基于SpringBoot+MyBatis+MySQL+VUE实现的青年公寓服务平台管理系统(附源码+数据库+毕业论文+部署教程+配套软件)

摘 要 传统信息的管理大部分依赖于管理人员的手工登记与管理,然而,随着近些年信息技术的迅猛发展,让许多比较老套的信息管理模式进行了更新迭代,房屋信息因为其管理内容繁杂,管理数量繁多导致手工进行处理不能满足广…

12.Redis 主从复制

Redis 主从复制Redis 主从复制1. Redis 主从复制架构2. 主从复制实现2.1 主从命令配置2.1.1 启用主从同步2.1.2 查看日志观察同步状态2.1.3 修改 Slave 节点配置文件2.1.4 删除主从同步3. 主从复制故障恢复3.1 Slave 节点故障和恢复3.2 Master 节点故障和恢复3.3 常见主从复制故…

微服务的编程测评系统8-题库管理-竞赛管理

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言1. 添加题目1.1 service方法1.2 画页面-引入富文本和代码编辑框1.3 子组件中发送请求2. 获取题目详情3. 编辑题目4. 删除题目5. Vue生命周期函数5.1 创建阶段5.2…

基于springboot的学习辅导系统设计与实现

学生:注册登录,学习视频,学习资料,在线交流,系统公告,个人中心,后台管理教师:登录,个人中心,学习视频管理,学习资料管理,签到记录管理…

Kubernetes (K8s) 部署Doris

官网提供yaml地址下载部署 https://doris.apache.org/zh-CN/docs/2.0/install/cluster-deployment/k8s-deploy/install-env/禁用和关闭 swap 在部署 Doris 时,建议关闭 swap 分区。 通过以下命令可以永久关闭 swap 分区。 echo "vm.swappiness 0">>…

AI生成图片工具分享!

CZL在线工具箱近日推出了一款基于Cloudflare Workers AI的免费在线AI图片生成服务。该服务采用**Stable Diffusion XL(SDXL)**模型,为用户提供高质量、逼真的图像生成体验。 核心特性 全球GPU网络:基于Cloudflare全球分布式GPU网…

Spring Batch的2种STEP定义方式

Spring Batch的2种STEP定义方式 1. 第一种:基于Chunk-Oriented Processing(read,process,write)形式 适用场景: 大数据量批处理:适合需要分批次读取、处理并写入大量数据的场景(如数…

前端JS-调用单删接口来删除多个选中文件

当开发中遇到:服务端没有删除多个文件功能接口,只有单个删除文件功能接口时,会遇到如何多选删除文件效果最佳。await Promise.all(selectedDocPaths.map(async (path) > {try {await fileDelete(path)} catch (err) {throw new Error(删除…