记一次前端CICD的有意思的优化

110 阅读1分钟

背景

某天,坐在对面的测试同事无意间说了一句,“为什么前端工程构建这么慢?”,成功引起了我的注意。 我打开CICD看了一下,很快定位到是在install的过程中慢了。

image.png

image.png

处理

这个处理的方法有很多,如开启缓存npm包,nexus加缓存,shell判断情况install等等。 我个人觉得我们最好的方案就是后者,shell加判断,如果package.json有变化了,才进行install操作。



#判断文件是否存在
if [! -f "package.json.md5" ];then 
    echo "文件不存在,需要重新安装依赖"    
    npm install 
    #把文件的md5值写入到目标文件中
    md5sum package.json>package.json.md5 
else  
    echo "文件已经存在"
fi
 
#检查md5sum是否有变更
if(md5sum -c --status package.json.md5);then
    echo "md5值一致"
else 
    echo "md5值不一致,需要重新安装依赖"
    npm install legacy-peer-deps
    md5sum package.json>package.json.md5
fi
 
npm run build

加上面脚本后,流水构建时间从原本的平均6分钟,改进到平均3分钟,压缩将近50%时间,年底绩效又有东西写了。