Rush Stack商店部落格活動
跳到主要內容

建議設定

在您的儲存庫啟動並執行後,我們建議在 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.jsonallowedAlternativeVersions 區段。

注意:在早期版本的 Rush 中,CI 腳本範例包含 rush check 作為建置步驟。ensureConsistentVersions 設定會消除這種需求。如果您啟用 ensureConsistentVersions,則可以從 CI 建置步驟中刪除 rush check

strictPeerDependencies

如果您使用 PNPM 套件管理器,我們強烈建議在 pnpm-config.json 中將 strictPeerDependencies 設定為 true。這會導致 Rush 在安裝期間使用 PNPM 的 --strict-peer-dependencies 選項。有了此保護,如果存在未滿足的對等相依性,rush install 將會失敗,這是一個無效狀態,可能會導致建置失敗或不相容的相依性版本。(由於歷史原因,JavaScript 套件管理器通常不會將此無效狀態視為錯誤。)