Jenkins前端打包内存溢出问题

Jenkins前端打包内存溢出问题

1.问题

公司项目vue构建,体积比较庞大,在Jenkins上构建时,有新的内容提交时,第一次npm run build必失败,报内存溢出错误

如下所示:

Jenkins前端打包内存溢出问题

 

2.解决过程

看报错信息是JavaScript堆内存不足。

查阅一些资料说是node基于V8引擎,在使用内存时只能使用部分内存,64位系统约为1.7G,项目太大这种限制会很坑,第一个想法是突破这种内存限制,网上也有很多这种方法:

第一种:设置环境变量:

export NODE_OPTIONS=–max_old_space_size=4096

第二种:在运行命令中增加 –max_old_space_size=4096

例如可以修改 package.json 的 scripts 脚本,具体代码就不展示了。。。

第三种:使用 increase-memory-limit 插件,增加node服务器内存限制

npm install –save-dev increase-memory-limit

npm run fix-memory-limit

然而,以上方法都无效。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

开始正题。。。

第一个想法:失败后重试,反正一般情况下第二次必成功

jerkins失败重试:Jenkins失败自动重试

第二个想法:

查看了服务器使用的node版本,是10.15.3,而自己电脑最新的稳定版是12,打包完全没问题,怀疑旧版本V8引擎太老,服务器更新node来试试,node13升级了V8,带来性能调整和改进!!

Jenkins前端打包内存溢出问题Jenkins前端打包内存溢出问题

先清除缓存:

npm cache clean -f

node多版本管理有个神器,n

先安装:

npm install -g n

安装最新版本:

n latest

安装最新稳定版本:

n stable

安装完成之后,直接输入n

选择版本(10.15.3版本是手动配置的环境变量,已经去掉,这里看不到了)

Jenkins前端打包内存溢出问题

上线翻动,按enter选择

然后就可以使用对应的版本了。

npm的版本可能比较低,需要更新下:

npm install -g npm

Jenkins上重新构建,发现还是使用的10.15.3的版本!原来在jenkins上的系统设置已经设置了环境变量,写死的node环境地址,去掉即可:

Jenkins前端打包内存溢出问题

打包遇到的问题:

Downloading binary from https://github.com/sass/node-sass/releases/download/v4.12.0/linux-x64-79_binding.node
Cannot download "https://github.com/sass/node-sass/releases/download/v4.12.0/linux-x64-79_binding.node": 

HTTP error 404 Not Found

Hint: If github.com is not accessible in your location
      try setting a proxy via HTTP_PROXY, e.g. 

      export HTTP_PROXY=http://example.com:1234/

or configure npm proxy via

      npm config set proxy http://example.com:8080/

看起来github上的资源没有,直接404了,换成国内镜像源

npm i node-sass –sass_binary_site=https://npm.taobao.org/mirrors/node-sass/

每次打包的时候都加上这个,完事。

试过全局加这个镜像,竟然不行,还是从github下,不知为何?待续吧

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/100278.html原文链接:https://javaforall.net

(3)
上一篇 2021年5月16日 下午10:00
下一篇 2021年5月17日 上午8:00


相关推荐

  • 安全优先!联想构建OpenClaw全渠道部署服务体系

    安全优先!联想构建OpenClaw全渠道部署服务体系

    2026年3月17日
    2
  • c++日志库实战——spdlog,是不是感觉log4cxx有点笨重,不妨试一试spdlog

    c++日志库实战——spdlog,是不是感觉log4cxx有点笨重,不妨试一试spdlogc++日志库实战——spdlog,是不是感觉log4cxx有点笨重,不妨试一试spdlog背景spdlog是什么spdlog快速入门常见问题打印行号怎么控制台看不到log同时输出控制台和文件文件按天分割完整代码附录CMakeList.txt关于背景在最近新入职同事的推荐下,作者在一个小工具中学习和使用了spdlog,且已发布到线上运行,以下是学习记录。spdlog是什么FastC++…

    2022年6月23日
    32
  • 永恒之蓝-MS17010 CVE-2017-0146

    永恒之蓝-MS17010 CVE-2017-0146永恒之蓝(EternalBlue)是由美国国家安全局开发的漏洞利用程序,对应微软漏洞编号ms17-010。该漏洞利用工具由一个名为”影子经济人”(ShadowBrokers)的神秘黑客组织于2017年4月14日公开的利用工具之一,该漏洞利用工具针对TCP445端口(ServerMessageBlock/SMB)的文件分享协议进行攻击,攻击成功后将被用来传播病毒木马。由于利用永恒之蓝漏洞利用工具进行传播病毒木马事件多,影响特大,因此很多时候默认将ms17-010漏洞称为“永恒之蓝”。…

    2022年5月27日
    57
  • 三步搞定 vscode 代码格式化

    三步搞定 vscode 代码格式化一 安装以下几个 vscode 扩展程序 ESLintPretti Codeformatte 如图 二 打开 settings 文件打开方式 先按步骤打开 setting 界面 Code amp amp gt preferences amp amp gt setting 也可以快捷键 command mac 直接打开 现在看到的是界面配置模式 点击右上角的三个

    2026年3月19日
    2
  • 软件测试的基本理论知识_软件测试基础知识整理

    软件测试的基本理论知识_软件测试基础知识整理01软件研发流程1.软件产品软件产品是指向用户提供的计算机软件、信息系统或设备中嵌入的软件或在提供计算机信息系统集成、应用服务等技术服务时提供的计算机软件。2.软件工程软件工程,英文名SoftwareEngineering,是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。“软件工程是开发、运行、维护和修复软件的系统方法。”这个定义相当概括,它主要强调软件工程是系统方法而不是某种…

    2025年7月30日
    5
  • 当销售遇上AI:我们在OpenClaw上做了一个会”思考”的销售助手

    当销售遇上AI:我们在OpenClaw上做了一个会”思考”的销售助手

    2026年3月16日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号