你瞅啥呢

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

 

posted @ 2026-03-13 15:40  叶乘风  阅读(23)  评论(0)    收藏  举报