ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Jenkins构建前端vue,version.json未正常打印git修订号

Jenkins构建前端vue,version.json未正常打印git修订号 Jenkins构建前端vue未正常打印git修订号前因1、引入version.josn文件功能2、Jenkins构建后commit为unknown未取到修订号3、修复commit为unknown问题4、结束前因由于客户突然要求在某个菜单vue页面加一个按钮。而当时的生产环境前端构建未生成version.json文件且自从上次发版新提交了很多git记录无法确认上线前的最后一版代码是哪个且没有上线分支0.0所以就紧急发布了最新的前端代码0.0也是因为后续新增的功能不影响客户已使用功能。但痛定思痛前端就引入了version.josn文件。1、引入version.josn文件功能首先在vite.config.mjs中引入组件信息等vite.config.mjs头部引入组件及定义变量import{execSync}fromchild_process;importfsfromfs;importdayjsfromdayjs;constcommitHash((){try{returnexecSync(git rev-parse HEAD).toString().trim();}catch{returnunknown;}})();constbuildTimedayjs().format(YYYY-MM-DD HH:mm:ss);constbuildId${commitHash}-${buildTime};vite.config.mjs的return的plugins: []中新增属性{name:generate-version-json,writeBundle(){constoutDirpath.resolve(dirname,warehouseSaber);if(!fs.existsSync(outDir))return;fs.writeFileSync(path.resolve(outDir,version.json),JSON.stringify({version:buildId,commit:commitHash,buildTime:buildTime,mode:mode,},null,2));console.log(✅ version.json generated:${buildId});},},本地构建成功。version.josn文件正常显示{version:111111111111111111111011111111111111111-2026-09-04 09:00:00,commit:111111111111111111111011111111111111111,buildTime:2026-09-04 09:00:00,mode:production}2、Jenkins构建后commit为unknown未取到修订号开发环境version.json文件如下{version:unknown-2026-09-04 09:00:00,commit:unknown,buildTime:2026-09-04 09:00:00,mode:production}3、修复commit为unknown问题修改commitHash变量赋值方式原方式constcommitHash((){try{returnexecSync(git rev-parse HEAD).toString().trim();}catch{returnunknown;}})();新方式constcommitHashprocess.env.VITE_BUILD_COMMIT||((){try{returnexecSync(git rev-parse HEAD).toString().trim();}catch{returnunknown;}})();修改Jenkins构建代码stage(install build){steps{dir(${WORKSPACE}){script{// 在 Jenkins 工作空间里获取 commit hash宿主机有 gitdef gitCommitsh(script:git rev-parse HEAD,returnStdout:true).trim()echo Building with commit: ${gitCommit}// 通过 -e 把 commit hash 作为环境变量传入容器sh docker run--rm \-v \$(pwd):/app \-w/app \-e VITE_BUILD_COMMIT${gitCommit}\ node:22-alpine sh-c \npm config set registry https://registry.npmmirror.com rm -rf node_modules npm install npm run build}}}}开发环境Jenkins构建前端后前端version.json文件如下{version:111111111111111111111011111111111111111-2026-09-04 09:10:00,commit:111111111111111111111011111111111111111,buildTime:2026-09-04 09:10:00,mode:production}4、结束
返回列表