博客 / 詳情

返回

用changeset來管理你的npm包版本

簡單介紹下,changeset是一個版本管理和生成更新日誌的工具,超級適用於多包倉庫,比如monorepo,可以在提交發布時,自動更新所有包的版本號,並且生成更新日誌。

一、安裝

進入項目之後執行命令,安裝changeset,並且初始化

 pnpm add -D @changesets/cli
 pnpm changeset init

執行完之後,在項目中會新增一個.changeset目錄,用於存放配置文件和臨時的版本變更描述文件

.changeset/
 ├─ config.json
 └─ README.md

二、使用流程

在通用的版本管理流程中,通常會區分為:

  • 預發佈版本(如alpha和beta)
  • 正式版本

預發佈版本

預發佈階段的兩級為alpha和beta,下面是大致區別:

維度 alpha(內測) beta(公測)
代碼穩定性 隨時可能大改 功能基本鎖定,不會有大的調整
測試人羣 團隊內部 灰度用户
發佈頻率 每天/每週都能出包 節奏稍慢,某個階段的版本
版本號示例 1.0.0-alpha.0 ➜ 1.0.0-alpha.1 … 1.0.0-beta.0 ➜ 1.0.0-beta.1 …
退出條件 達到功能完備 → 進入beta 連續幾天無阻塞Bug → 發佈正式版

相關命令:

pnpm changeset pre enter alpha   # 進入alpha模式,
pnpm changeset version          # 版本變成0.0.1-alpha.0

pnpm changeset pre enter beta   # 進入beta模式
pnpm changeset version          # 版本變成0.0.1-beta.0

# 結束預發佈
pnpm changeset pre exit
pnpm changeset version          # 版本變成0.0.1

正式版本

當你完成某個包的開發,準備發版時,執行:

pnpm changeset

如果是多包倉庫,終端會出現一個選擇框,讓你選擇改過的包,

  1. 按空格選中你改過的包(有星號就算選中)→ 回車,
  2. 選包的更新級別,會依次出現major和minor,回車到下一步,如果都沒選中,就默認為patch,輸入本次更新的描述回車

    • patch:修復小bug(1.0.0→1.0.1)
    • minor:添加新功能(1.0.0→1.1.0)
    • major:破壞性的大版本調整,api級別的調整(1.0.0→2.0.0)

單包倉庫就直接到了選擇更新級別這一步,同樣是輸入描述,然後回車;

生成版本號,執行:

pnpm changeset version

你會發現.changeset文件夾中剛才生成的md文件都已經不見了,版本號也升好了。

發佈

  • 登錄npm
npm login
  • 發版
pnpm changeset publish

成功後,會在git創建對應的git tag,終端會給出每個包的版本號和 npm鏈接。

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.