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下,不知为何?待续吧

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(3)
blank

相关推荐

  • 数据库基础知识一(MySQL)[通俗易懂]

    数据库基础知识一(MySQL)[通俗易懂]数据库是研究数据管理的技术。即如何妥善地保存和科学地管理数据。数据管理是指对数据进行分类、组织、编码、存储、检索和维护等操作。数据管理技术好坏评判的标准:(1)数据冗余(2)数据共享(3)数据独立性(4)数据统一集中管理数据库:按一定结构组织存储的、集成的、可共享的数据的集合。数据库有两种类型:关系型数据库与非关系型数据库。关系型数据库:存储格式能直观地反映实体间的关系,和创…

  • 数据库:MySQL 修改密码

    数据库:MySQL 修改密码1.改动数据库配置表编辑/etc/my.cnf,在配置表后方加入“skip-grant-tables”,意思是跳过跳过授权表,即不再坚定账号密码的正确性,使用servicemysqldrestart重启mysql,输入mysql-uroot-p,直接回车进入数据库命令行。2.更改密码MySQL5.7之前的版本修改密码使用的语句是:UPDATEuserSETPassword=PASSWORD(‘yourpassword’)whereUSER=’root’;5.7之

  • python qt是什么_初识Python与Qt「建议收藏」

    python qt是什么_初识Python与Qt「建议收藏」Python的3.0版本,在开发阶段被称为Python3000,或简称Py3k。相对于Python的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python3.0在设计的时候就没有考虑向下兼容。许多针对早期Python版本设计的程序都无法在Python3.0上正常运行。为了照顾现有程序,Python2.6作为一个过渡版本,基本使用了Python2.x的语法和库,同时考虑了向Pyt…

  • idea如何查找替换_wps表格怎么查找替换文字

    idea如何查找替换_wps表格怎么查找替换文字在平时敲代码的时候经常碰到,咦,这个变量名好像不太合适,但又写了好多这时候可以怎么办呢?Pycharm里面给我们准备了替换功能————–windows电脑—————1.Ctrl+r替换2.Ctrl+Shift+F全局查3.Ctrl+Shift+R全局替换————–MAC电脑—————1.command+F全局查找2.command+R全局替换…

  • 关于ADRC算法以及参数整定(调参)的一些心得体会

    关于ADRC算法以及参数整定(调参)的一些心得体会关于ADRC算法以及参数整定(调参)的一些心得体会ADRC,全称叫做ActiveDisturbanceRejectionControl,中文名是自抗扰控制技术。这项控制算法是由中科院的韩京清教授提出的。韩教授继承了经典PID控制器的精华,对被控对象的数学模型几乎没有任何要求,又在其基础上引入了基于现代控制理论的状态观测器技术,将抗干扰技术融入到了传统PID控制当中去,最终设计出了适合在工程…

  • pfx文件解析私钥和公钥

    pfx文件解析私钥和公钥最近和某行对接,发现私钥和公钥以pfx文件形式传给我们,需要我们自己进行读取,当时头就有点儿大(菜鸟,第一次接触,哎~~~)先说一下pfx证书与cer证书的区别PFX证书:由PublicKeyCryptographyStandards#12,PKCS#12标准定义,包含了公钥和私钥的二进制格式的证书形式,以pfx作为证书文件后缀名。CER证书:证书中没有私钥,DER编码二进制

发表回复

您的电子邮箱地址不会被公开。

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