在Angular 結合Git Commit 版本處理文末我們留下了疑問?️ 下面將問題具體化
結合jenkins 構建,我們能夠獲取到構建的信息,比如構建號,回填到頁面否? 【相關教學推薦:《angular教學》】
如下:
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
開發的內容,敬請期待。
本文轉載自:https://juejin.cn/post/7081642981890981895
作者:Jimmy