巧用windows的move命令结合jenkins让npm构建速度上来

2024-02-03 07:28

本文主要是介绍巧用windows的move命令结合jenkins让npm构建速度上来,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一.背景

jenkins构建vue2的项目,每次都很慢,即便非常顺利都要1分多钟。之前的文章想到的私服的方式,windows下利用verdaccio私服让npm构建速度上来-CSDN博客。其实慢的原因不仅仅是依赖下载的问题。

二.还有哪里慢

1.源代码同步慢

从构建日志发现有一句命令:

git.exe init C:\Users\Administrator\.jenkins\workspace\qiankunbag-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:\SoftwareDownloads\nginx-1.25.2\dist /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:\SoftwareDownloads\nginx-1.25.2\dist /E /Y /I 1>null

为啥分为三个步骤呢?

因为发现npm的命令执行后,其他的命令就不继续执行了。原因暂没有想明白,现象就是这样,所以分开为3个了。

五.脚本的健壮性

如果人工干预,把上级目录的node_modules删除了。该任务仍然能正常构建,只是第一步会提示没有找到node_modules文件,npm install会全量从私服去安装组件,大不了就是慢点而已。

最终构建的速度提升为30秒左右。

这篇关于巧用windows的move命令结合jenkins让npm构建速度上来的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/673375

相关文章

linux打包解压命令方式

《linux打包解压命令方式》文章介绍了Linux系统中常用的打包和解压命令,包括tar和zip,使用tar命令可以创建和解压tar格式的归档文件,使用zip命令可以创建和解压zip格式的压缩文件,每... 目录Lijavascriptnux 打包和解压命令打包命令解压命令总结linux 打包和解压命令打

Docker部署Jenkins持续集成(CI)工具的实现

《Docker部署Jenkins持续集成(CI)工具的实现》Jenkins是一个流行的开源自动化工具,广泛应用于持续集成(CI)和持续交付(CD)的环境中,本文介绍了使用Docker部署Jenkins... 目录前言一、准备工作二、设置变量和目录结构三、配置 docker 权限和网络四、启动 Jenkins

Windows设置nginx启动端口的方法

《Windows设置nginx启动端口的方法》在服务器配置与开发过程中,nginx作为一款高效的HTTP和反向代理服务器,被广泛应用,而在Windows系统中,合理设置nginx的启动端口,是确保其正... 目录一、为什么要设置 nginx 启动端口二、设置步骤三、常见问题及解决一、为什么要设置 nginx

在 Windows 上安装 DeepSeek 的完整指南(最新推荐)

《在Windows上安装DeepSeek的完整指南(最新推荐)》在Windows上安装DeepSeek的完整指南,包括下载和安装Ollama、下载DeepSeekRXNUMX模型、运行Deep... 目录在www.chinasem.cn Windows 上安装 DeepSeek 的完整指南步骤 1:下载并安装

nginx-rtmp-module构建流媒体直播服务器实战指南

《nginx-rtmp-module构建流媒体直播服务器实战指南》本文主要介绍了nginx-rtmp-module构建流媒体直播服务器实战指南,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录1. RTMP协议介绍与应用RTMP协议的原理RTMP协议的应用RTMP与现代流媒体技术的关系2

使用DeepSeek API 结合VSCode提升开发效率

《使用DeepSeekAPI结合VSCode提升开发效率》:本文主要介绍DeepSeekAPI与VisualStudioCode(VSCode)结合使用,以提升软件开发效率,具有一定的参考价值... 目录引言准备工作安装必要的 VSCode 扩展配置 DeepSeek API1. 创建 API 请求文件2.

Redis的Zset类型及相关命令详细讲解

《Redis的Zset类型及相关命令详细讲解》:本文主要介绍Redis的Zset类型及相关命令的相关资料,有序集合Zset是一种Redis数据结构,它类似于集合Set,但每个元素都有一个关联的分数... 目录Zset简介ZADDZCARDZCOUNTZRANGEZREVRANGEZRANGEBYSCOREZ

Linux使用dd命令来复制和转换数据的操作方法

《Linux使用dd命令来复制和转换数据的操作方法》Linux中的dd命令是一个功能强大的数据复制和转换实用程序,它以较低级别运行,通常用于创建可启动的USB驱动器、克隆磁盘和生成随机数据等任务,本文... 目录简介功能和能力语法常用选项示例用法基础用法创建可启动www.chinasem.cn的 USB 驱动

关于Maven生命周期相关命令演示

《关于Maven生命周期相关命令演示》Maven的生命周期分为Clean、Default和Site三个主要阶段,每个阶段包含多个关键步骤,如清理、编译、测试、打包等,通过执行相应的Maven命令,可以... 目录1. Maven 生命周期概述1.1 Clean Lifecycle1.2 Default Li

windows系统下shutdown重启关机命令超详细教程

《windows系统下shutdown重启关机命令超详细教程》shutdown命令是一个强大的工具,允许你通过命令行快速完成关机、重启或注销操作,本文将为你详细解析shutdown命令的使用方法,并提... 目录一、shutdown 命令简介二、shutdown 命令的基本用法三、远程关机与重启四、实际应用