一.背景
jenkins构建vue2的项目,每次都很慢,即便非常顺利都要1分多钟。之前的文章想到的私服的方式,windows下利用verdaccio私服让npm构建速度上来-CSDN博客。其实慢的原因不仅仅是依赖下载的问题。
二.还有哪里慢
1.源代码同步慢
从构建日志发现有一句命令:
git.exe init C:UsersAdministrator.jenkinsworkspaceqiankunbag-vue # timeout=10
这句话执行时,会清空整个项目qiankunbag-vue文件夹。而其中的node_modules文件夹有42665个文件,大小248M。
2.真正慢的是删除node_modules文件夹慢
手动尝试删除该文件夹,发现删除都要几十秒,几万个小文件,没有办法啊!但是发现用手动剪切文件夹却非常快,大概不到1秒。所以,优化的思路就有了。
三.优化的思路
经过思考,我准按照下面的思路来编写构建脚本。
0.jenkins同步代码
同步时,自动清空项目文件夹,里面已经没有了node_modules文件夹,所以速度提升了。
1.将上级目录备份的node_modules文件夹剪切到项目目录
使用windows的move命令,类似手工操作的剪切,速度很快。
2.npm安装组件
与之前不变,还是npm install
3.npm构建项目
与之前不变,还是npm run build:prod
4.备份node_modules文件夹
使用windows的move命令,类似手工操作的剪切,速度很快。
5.发布dist文件夹
还是之前不变,
xcopy .dist C:SoftwareDownloadsnginx-1.25.2dist /E /Y /I 1>null
四.jenkins最终的构建steps
使用Execute Windows batch command,构建三个步骤,分别是
move ..node_modules .node_modules
npm install
npm run build:prod
move .node_modules ..node_modules
xcopy .dist C:SoftwareDownloadsnginx-1.25.2dist /E /Y /I 1>null
为啥分为三个步骤呢?
因为发现npm的命令执行后,其他的命令就不继续执行了。原因暂没有想明白,现象就是这样,所以分开为3个了。
五.脚本的健壮性
如果人工干预,把上级目录的node_modules删除了。该任务仍然能正常构建,只是第一步会提示没有找到node_modules文件,npm install会全量从私服去安装组件,大不了就是慢点而已。
最终构建的速度提升为30秒左右。
原文地址:https://blog.csdn.net/qq_37372909/article/details/135998304
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_65061.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!