當我們使用 JavaScript 開發時,常常會需要使用 npm 進行 node_modules 的安裝,相關的使用說明可以參考前一篇寫的 NPM 常用指令教學。
在使用的過程中,版本號代表的意涵就相對重要,那這篇文章中將提到:
- 專案的版號與版本資訊簡介
- 如何透過 semantic-release 或 standard-version 自動產生版號、版本資訊
Semantic Versioning
當有一天我們也需要 release 我們開發的程式給其他人使用時,每次 release 的版號以及內容就會顯得重要,版號通常都是以 semver 的原則,會有三位數字 1.2.3
對應到 主版號.次版號.修訂號
。
版號資訊會在 package.json
中 version 這個值,另外版本資訊都跟 git tag 有關,通常會寫在:
所以當我們每次進行發佈前:
- 修改版號
- 加上 git tag
- 撰寫
CHANGELOG.md
- 更新到版本控制系統中撰寫 Release Note
- 發佈
自動化版號與版本資訊產生工具
只要 commit 訊息有遵守相關原則,工具就有辦法做到 lint 相關訊息並統整與釋出。
那按照適用的環境主要有以下兩個工具:
semantic-release | standard-version |
---|---|
有 CI/CD | 無 CI/CD |
git tag 及 releases | git tag 及 CHANGELOG.md |
訊息格式會像這樣 類型(範圍): 敘述
,範圍通常用檔名,所以一個 commit 訊息可能會是:
BREAKING CHANGE(README.md): 第一版說明文件
常用類型:
- BREAKING CHANGE: 影響功能
- feat: 新增功能
- perf: 效能改善
- fix: 修正 bug
其他不會被統整,但可能有機會用到的:
- docs 文件
- refactor 重構
- revert 復原
- style 寫樣式
- test 測試功能
semantic-release
- 在 CI 工具中執行相關指令
- 自動統整 commit 訊息成 Release Note、修改版號並加上 git tag、更新至版控系統
- 發佈
standard-version
- 本機端執行相關指令
- 自動統整 commit 訊息並更新
CHANGELOG.md
、更新版號並加上 git tag - 執行 Push 相關指令更新至版控系統
- 發佈
喜歡這篇文章,請幫忙拍拍手喔 🤣