刚好最近在巩固相关的知识内容,以 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
开发的内容,敬请期待。
【完】✅