一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第1天,点击查看活动详情。
刚好最近在巩固相关的知识内容,以 angular
为主,那么咱就来参与下活动,希望能够坚持下去,顺便拿点小奖励。
I am In.
在 Angular 结合 Git Commit 版本处理 文末我们留下了疑问🤔️ 下面将问题具体化
结合 jenkins 构建,我们能够获取到构建的信息,比如构建号,回填到页面否?
如下:
Uha,我们在原基础上修改下。
根目录添加文件 build_info.json
。
{} 复制代码
你没看错,
build_info.json
的内容就是{}
build_info.json
文件是给 Jenkinsfile
构建的时候生成的。
具体的实现思路如下:
- 在构建的过程中执行
Jenkinsfile
生成build_info.json
文件
- 在对项目打包的时候,针对不同的环境考虑是否获取
build_info.json
文件的内容
为了方便演示,这里的环境只考虑生产环境
上面的步骤简单两步,最重要的一点是如何写入 build_info.json
文件内容。
如果你不熟悉 Jenkinsfile
相关内容,请结合Jenkins Pipeline 结合 Gitlab 实现 Node 项目自动构建文章来阅读。此时你关注的重点是文章 Jenkinsfile
的内容,如下:
pipeline { agent any tools { nodejs "nodejs" } stages { stage('Dependency') { steps { sh 'npm install' } } # 我们在此添加过一个 stage,见下面👇 stage('Build') { steps { sh 'npm run clean' sh 'npm run build' } } } } 复制代码
我们添加过一个 stage
来完成我们对 build_info.json
文件的写入。
stage('Version') { steps { script { def amap = 'build_number': BUILD_NUMBER, # 构建号 'job_name': JOB_NAME # 任务名称 ] # 写入文件 writeJSON file: WORKSPACE+'build_info.json', json: amap # WORKSPACE 根目录 } } } 复制代码
Yeah,思路还可以... Right?
下面进入第二步骤:读取 build_info.json
的内容,我截取 version.js
生产环境那部分的内容:
// 引入生成的 build_info.json 文件 let buildInfo = require('./build_info.json'); if(config.env === 'production') { // 获取构建的版本号,否则获取默认的版本 versionObj.version = buildInfo.build_number || config.version } 复制代码
完成上面的文件之后,你就可以发布到相关的环境,顺利的话,在页面上你可以看到相关的版本号了。
这篇文章跟 angular
的关联不是很大,只是用来打配合 jenkins
。下一篇文章是关于使用 Angular
进行 spa
开发的内容,敬请期待。