2026-03-13 Jenkins 脚本
前端代码打包:
一行代码版本(简略版)
通用版本:
echo "[开始] 开始安装依赖..." & npm install --ignore-scripts && (echo "[成功] 依赖安装完成,开始打包..." & npm run build) || (echo "[失败] ========== 构建失败!错误信息如下 ==========" & type npm-debug.log 2>nul & echo "[失败] 请检查上面的错误信息,修复后重新构建" & exit 1) & echo "[信息] 查看构建输出了什么..." & dir & echo "[信息] 查找可能生成的构建目录..." & if exist dist (xcopy /E /Y dist D:\test\my-express-server\dist\ & echo "[成功] 复制 dist 完成") else if exist build (xcopy /E /Y build D:\test\my-express-server\dist\ & echo "[成功] 复制 build 完成") else if exist output (xcopy /E /Y output D:\test\my-express-server\dist\ & echo "[成功] 复制 output 完成") else (echo "[警告] 未找到构建目录,请检查" & dir /ad /b) & echo "[完成] 部署完成,目标目录内容:" & dir D:\test\my-express-server\dist
跳过类型检查版本:
echo "[开始] 开始安装依赖..." & yarn install && (echo "[成功] 依赖安装完成,开始打包..." & yarn build --skip-type-check) || (echo "[失败] ========== 构建失败!错误信息如下 ==========" & exit 1) & echo "[信息] 查看构建输出了什么..." & dir & echo "[信息] 查找可能生成的构建目录..." & if exist dist (xcopy /E /Y dist D:\test\my-express-server\dist\ & echo "[成功] 复制 dist 完成") else if exist build (xcopy /E /Y build D:\test\my-express-server\dist\ & echo "[成功] 复制 build 完成") else (echo "[警告] 未找到构建目录,请检查" & dir /ad /b) & echo "[完成] 部署完成,目标目录内容:" & dir D:\test\my-express-server\dist
多行版本(可能会乱码):
@echo off chcp 65001 > nul echo =================================================== echo 自动化构建部署脚本 v2.0 echo 触发时间:%DATE% %TIME% echo 工作目录:%CD% echo =================================================== :: 显示当前代码版本信息 echo. echo [步骤 1/6] 代码版本信息 echo ---------------------------------- git log -1 --pretty=format:"提交哈希: %%h" git log -1 --pretty=format:"提交信息: %%s" git log -1 --pretty=format:"提交时间: %%ad" --date=local git log -1 --pretty=format:"提交作者: %%an" echo ---------------------------------- :: 设置镜像源 echo. echo [步骤 2/6] 配置npm镜像源... call npm config set registry http://registry.npmmirror.com if %errorlevel% equ 0 ( echo [OK] 镜像源配置成功 ) else ( echo [WARN] 镜像源配置失败,使用默认源 ) :: 安装依赖 echo. echo [步骤 3/6] 安装项目依赖... echo 执行: npm install --ignore-scripts call npm install --ignore-scripts if %errorlevel% neq 0 ( echo [ERROR] 依赖安装失败! echo 请检查网络或package.json配置 exit /b 1 ) echo [OK] 依赖安装成功 :: 构建项目 echo. echo [步骤 4/6] 构建项目... echo 执行: npm run build call npm run build if %errorlevel% neq 0 ( echo [ERROR] 构建失败! echo 请检查构建错误信息 exit /b 1 ) echo [OK] 构建成功 :: 检查构建产物 echo. echo [步骤 5/6] 检查构建产物... if not exist dist ( echo [ERROR] dist目录不存在! echo 当前目录内容: dir /ad /b exit /b 1 ) :: 统计文件数量 set FILE_COUNT=0 for /f %%i in ('dir dist /s /a-d /b 2^>nul ^| find /c /v ""') do set FILE_COUNT=%%i echo [INFO] 构建产物统计:%FILE_COUNT% 个文件 dir dist /w | findstr "个目录" echo. echo =================================================== echo 本地构建完成,准备通过 SSH 部署到远程服务器... echo 构建产物:%FILE_COUNT% 个文件 echo 远程路径:/www/wwwroot/cloud.iuniko.work echo 完成时间:%DATE% %TIME% echo =================================================== :: 注意:后续的 SSH 部署由 Jenkins 的 "Send build artifacts over SSH" 插件完成 :: 请在 Jenkins 任务配置的"构建后操作"中设置: :: - Source files: dist/** :: - Remove prefix: dist :: - Remote directory: (留空) :: 确保脚本以成功状态退出 exit /b 0

浙公网安备 33010602011771号