建議設定
在您的儲存庫啟動並執行後,我們建議在 rush.json 中啟用一些設定。這些更嚴格的設定有助於改善儲存庫的健康狀況並減少維護上的麻煩。它們預設為停用,因為它們有時需要對您的程式碼庫進行一些修正,並且可能不適用於所有情況。
repository.url
如果您的儲存庫使用 rush change
指令來追蹤變更記錄,我們強烈建議在您的 rush.json 中設定 repository.url
。這可確保 rush change
能夠準確地找到用於比較的基準分支,尤其是在開發人員的儲存庫已從主儲存庫「分叉」的情況下。
來自 rush.json 的範例摘錄
"repository": {
// Replace this with the URL that you use when running "git clone" for your repo
"url": "https://github.com/microsoft/rush-example"
}
ensureConsistentVersions
我們建議在 rush.json 中將 ensureConsistentVersions
設定為 true
。這會導致 Rush 在調用下列任何指令時自動執行 rush check
驗證。
rush install
rush update
rush link
rush version
rush publish
此驗證會檢查每個專案的 package.json 檔案,並確保整個儲存庫中所有相依性的版本都相同。這通常是理想的,並且可以避免許多與版本不一致相關的問題。
有時會有希望使用多個版本的特殊情況。例如,您可能希望分階段將專案升級到新的 TypeScript 編譯器,而不是一次全部升級。在此轉換期間,您可能需要為儲存庫安裝兩個不同的 typescript
版本。對於這些例外情況,您可以將項目新增至 common-versions.json 的 allowedAlternativeVersions
區段。
注意:在早期版本的 Rush 中,CI 腳本範例包含
rush check
作為建置步驟。ensureConsistentVersions
設定會消除這種需求。如果您啟用ensureConsistentVersions
,則可以從 CI 建置步驟中刪除rush check
。
strictPeerDependencies
如果您使用 PNPM 套件管理器,我們強烈建議在 pnpm-config.json 中將 strictPeerDependencies
設定為 true
。這會導致 Rush 在安裝期間使用 PNPM 的 --strict-peer-dependencies
選項。有了此保護,如果存在未滿足的對等相依性,rush install
將會失敗,這是一個無效狀態,可能會導致建置失敗或不相容的相依性版本。(由於歷史原因,JavaScript 套件管理器通常不會將此無效狀態視為錯誤。)