最近再弄一個版號顯示的功能,但我真的好懶得手動去改版號,有什麼自動方便的作法呢? 以下是我找到比較方便的方式
.NET Core
在以往的 .NET 專案
有一個記錄版本的檔案,叫做 Assemblyinfo.cs
,裡面會記錄著專案的相關資訊包含作者、公司、產品名稱、及版本資訊等,目前可以透過 IDE 編輯專案屬性 -> 編輯套件資訊
如果要自動編版本號碼,這裡有一個透過編輯 csproj
來動態改變版本
1 | <PropertyGroup> |
<build>
、<Revision>
自定義變數供<Version>
使用,這邊的規則可以依個人喜好修改<Version>
設定產品版本
對應產生的 Assemblyinfo.cs
內容為
1 | //------------------------------------------------------------------------------ |
Angular
有時候我們也想要在前端網站給予設定版本,除了手動修改外,其實也可以透過 npm version
來完成,雖然有點奇怪,但還是可以運作啦
npm version
這功能原本是用來更新 npm package 版本使用,指令如下
1 | npm version [<newversion> | major | minor | patch | premajor | preminor | prepatch | prerelease [--preid=<prerelease-id>] | from-git] |
這指令會同步更新 package.json
的 version
欄位值,這邊就快速列出我所使用的 script
1 | "prebuild": "npm --no-git-tag-version version patch", |
prebuild
這行為會發生在執行npm build
之前--no-git-tag-version
設定npm version
不要自動 commit 且不要加上 tagnpm version patch
: 只更新 patch 版號
postversion
這動作會發生在npm version
之後- 加入並 commit 異動檔案
當 package.json
內的 version
處理完後,就可以在 environment.ts
的地方引用 package.json
了
1 | export const environment = { |
由於這邊有使用到 node
的 required
,在 tsconfig.app.json
及 tsconfig.spec.json
的 compilerOptions.types
內要加上 node
,並安裝 @types/node
的型別定義檔,剩下就跟原來使用 environment 的方式一樣了
小結
目前是我處理自動版號的方式,如果有其他更好的作法,也歡迎分享給我