本技術涉及前端工程化與electron應用開發(fā)領域,尤其涉及一種基于electron的版本更新日志生成方法、設備及介質。
背景技術:
1、electron是一個使用javascript、html和css構建跨平臺桌面應用程序的框架。它通過嵌入chromium和node.js,使得開發(fā)者可以使用web技術來開發(fā)桌面應用,并且這些應用可以在macos、windows和linux上運行,支持所有支持的架構。
2、在electron項目應用發(fā)布過程中,版本日志(release?notes)的現(xiàn)有生成方案為開發(fā)者直接編輯markdown文件或者對latest.yml文件自行進行簡單文本替換,難以滿足企業(yè)級應用的規(guī)范化管理需求。因此,亟需一種與構建工具集成、支持結構化數(shù)據(jù)輸入輸出的日志生成方案。
技術實現(xiàn)思路
1、本技術實施例提供了一種基于electron的版本更新日志生成方法、設備及介質,用于解決如下技術問題:在現(xiàn)有的electron項目應用發(fā)布過程中,版本日志僅支持字符串形式而無法表達復雜數(shù)據(jù)結構,難以保留結構化數(shù)據(jù)特征。
2、本技術實施例采用下述技術方案:
3、一方面,本技術實施例提供了一種基于electron的版本更新日志生成方法,包括:基于標準化的json文件,定義并生成結構化的日志數(shù)據(jù);將解析出的日志數(shù)據(jù)進行有關yaml格式內容轉換處理,得到release-notes.md文件;對所述release-notes.md文件進行打包處理;通過打包處理之后的后置鉤子腳本,并基于資源存儲路徑,識別并讀取latest.yml文件;對所述latest.yml文件中的內容數(shù)據(jù)進行轉換與修復,得到修復后的json數(shù)據(jù);對修復后的json數(shù)據(jù)進行回寫處理,生成新latest.yml文件。
4、本技術實施例通過兼容現(xiàn)有electron構建生態(tài)的前提下,實現(xiàn)了版本日志的結構化配置。將解析出的日志數(shù)據(jù)進行yaml格式轉換,增加了輸出格式的靈活性,方便不同系統(tǒng)的集成和使用。生成的release-notes.md文件是markdown格式,這種格式易于閱讀和在文檔中分享。對release-notes.md文件進行打包處理,有助于簡化文件管理,尤其是在文件數(shù)量較多時。打包后的文件更易于分發(fā)和部署到不同的環(huán)境中。通過后置鉤子腳本自動化處理,可以減少手動操作,提高工作效率?;谫Y源存儲路徑識別并讀取latest.yml文件,可以精確地管理資源,避免不必要的資源浪費。而且對修復后的json數(shù)據(jù)進行回寫處理,生成新的latest.yml文件,可以確保文件反映最新的資源狀態(tài)。這種回寫機制有助于系統(tǒng)更新與資源狀態(tài)的同步,確保系統(tǒng)的穩(wěn)定性和可靠性。
5、在一種可行的實施方式中,基于標準化的json文件,定義并生成結構化的日志數(shù)據(jù),具體包括:基于electron的版本的應用發(fā)布過程中,輸入標準化的json文件;其中,所述標準化的json文件為開發(fā)者自定義的json文件;通過所述標準化的json文件,對版本日志進行內容數(shù)據(jù)的定義配置處理,并生成所述結構化的日志數(shù)據(jù)。
6、在一種可行的實施方式中,將解析出的日志數(shù)據(jù)進行有關yaml格式內容轉換處理,得到release-notes.md文件,具體包括:構建打包前的前置鉤子腳本;讀取與所述日志數(shù)據(jù)對應的json文件,并解析開發(fā)者定義下的所述日志數(shù)據(jù);將所述json文件轉換為符合yaml格式的數(shù)據(jù),生成markdown文件;將所述markdown文件中的內容數(shù)據(jù)寫入到識別出的release-notes.md文件,得到寫入后的所述release-notes.md文件。
7、在一種可行的實施方式中,對所述release-notes.md文件進行打包處理,具體包括:當electron處于構建流程啟動時,通過前置鉤子腳本,并基于新版本發(fā)布下的源代碼,將所述release-notes.md文件注入到electron的打包流程中。
8、在一種可行的實施方式中,通過打包處理之后的后置鉤子腳本,并基于資源存儲路徑,識別并讀取latest.yml文件,具體包括:當識別到electron的打包流程完成時,通過所述后置鉤子腳本,獲取electron打包配置中config對象的打包后所述資源存儲路徑;基于所述資源存儲路徑,自動定位識別并讀取出所述latest.yml文件。
9、在一種可行的實施方式中,對所述latest.yml文件中的內容數(shù)據(jù)進行轉換與修復,得到修復后的json數(shù)據(jù),具體包括:對所述latest.yml文件進行內容數(shù)據(jù)的解析處理,并將解析后的內容數(shù)據(jù)轉換為json格式下的日志數(shù)據(jù);根據(jù)所述日志數(shù)據(jù)的新版本發(fā)布判斷結果,將處于string格式下的日志數(shù)據(jù)轉換為處于object格式下的日志數(shù)據(jù),并重新賦值到新版本發(fā)布數(shù)據(jù)中;對處于object格式下的日志數(shù)據(jù)進行相關元素數(shù)據(jù)的補充修復,得到與日志數(shù)據(jù)對應的所述修復后的json數(shù)據(jù);其中,所述相關元素數(shù)據(jù)至少包括:發(fā)布日志以及構建環(huán)境。
10、在一種可行的實施方式中,對修復后的json數(shù)據(jù)進行回寫處理,生成新latest.yml文件,具體包括:將修復后的json數(shù)據(jù)重新轉換為新yaml格式數(shù)據(jù);基于轉換后的新yaml格式數(shù)據(jù),對原始的所述latest.yml文件進行數(shù)據(jù)覆蓋處理,生成所述新latest.yml文件;基于所述新latest.yml文件,完成了對新版本發(fā)布數(shù)據(jù)中結構化數(shù)據(jù)的保留處理。
11、在一種可行的實施方式中,所述前置鉤子腳本的腳本組件包括以下任意一項或多項:vite、webpack、electron-builder以及npmscripts。
12、第二方面,本技術實施例還提供了一種基于electron的版本更新日志生成設備,所述設備包括:至少一個處理器;以及,與所述至少一個處理器通信連接的存儲器;其中,所述存儲器存儲有能夠被所述至少一個處理器執(zhí)行的指令,以使所述至少一個處理器能夠執(zhí)行上述任一實施方式所述的一種基于electron的版本更新日志生成方法。
13、第三方面,本技術實施例還提供了一種非易失性計算機存儲介質,其特征在于,所述存儲介質為非易失性計算機可讀存儲介質,所述非易失性計算機可讀存儲介質存儲有至少一個程序,每個所述程序包括指令,所述指令當被終端執(zhí)行時,使所述終端執(zhí)行上述任一實施方式所述的一種基于electron的版本更新日志生成方法。
14、本技術提供了一種基于electron的版本更新日志生成方法、設備及介質,與現(xiàn)有技術相比,本技術實施例具有以下有益的技術效果:
15、1.標準化數(shù)據(jù)處理:通過基于標準化的json文件生成結構化的日志數(shù)據(jù),可以確保日志數(shù)據(jù)的格式統(tǒng)一,便于后續(xù)處理和查詢。結構化的數(shù)據(jù)易于維護和更新,減少了數(shù)據(jù)不一致和錯誤的風險。
16、2.格式轉換靈活性:將解析出的日志數(shù)據(jù)進行yaml格式轉換,增加了輸出格式的靈活性,方便不同系統(tǒng)的集成和使用。生成的release-notes.md文件是markdown格式,這種格式易于閱讀和在文檔中分享。
17、3.文件打包處理:對release-notes.md文件進行打包處理,有助于簡化文件管理,尤其是在文件數(shù)量較多時。打包后的文件更易于分發(fā)和部署到不同的環(huán)境中。
18、4.自動化處理:通過后置鉤子腳本自動化處理,可以減少手動操作,提高工作效率。自動化處理可以確保每次處理過程的一致性,減少人為錯誤。
19、5.資源管理優(yōu)化:基于資源存儲路徑識別并讀取latest.yml文件,可以精確地管理資源,避免不必要的資源浪費。對latest.yml文件中的內容數(shù)據(jù)進行轉換與修復,可以確保數(shù)據(jù)的準確性,減少因數(shù)據(jù)錯誤導致的問題。
20、6.數(shù)據(jù)回寫和更新:對修復后的json數(shù)據(jù)進行回寫處理,生成新的latest.yml文件,可以確保文件反映最新的資源狀態(tài)。這種回寫機制有助于系統(tǒng)更新與資源狀態(tài)的同步,確保系統(tǒng)的穩(wěn)定性和可靠性。