Turborepo logo

boundaries

實驗性功能

Boundaries 透過檢查套件管理器 Workspace 違規行為,確保 Turborepo 功能正常運作。

終端機
turbo boundaries

Boundaries RFC

此功能為實驗性功能,我們希望您針對 Boundaries RFC 提供意見回饋。

此命令將通知兩種違規類型

  • 匯入套件目錄外的檔案
  • 匯入未在套件的 package.json 中指定為相依性的套件

標籤

Boundaries 也有一項功能,可讓您將標籤新增至套件。這些標籤可用於建立 Boundaries 檢查的規則。例如,您可以將 internal 標籤新增至您的 UI 套件

./packages/ui/turbo.json
{
  "tags": ["internal"]
}

然後宣告規則,具有 public 標籤的套件不得相依於具有 internal 標籤的套件

./turbo.json
{
  "boundaries": {
    "tags": {
      "public": {
        "dependencies": {
          "deny": ["internal"]
        }
      }
    }
  }
}

或者,您可能希望 public 套件僅相依於其他 public 套件

turbo.json
{
  "boundaries": {
    "tags": {
      "public": {
        "dependencies": {
          "allow": ["public"]
        }
      }
    }
  }
}

同樣地,您可以為標籤的相依套件新增限制,即匯入具有該標籤之套件的套件。

turbo.json
{
  "boundaries": {
    "tags": {
      "private": {
        "dependents": {
          "deny": ["public"]
        }
      }
    }
  }
}

套件名稱也可以在允許和拒絕清單中取代標籤使用。

turbo.json
{
  "boundaries": {
    "tags": {
      "private": {
        "dependents": {
          "deny": ["@repo/my-pkg"]
        }
      }
    }
  }
}

標籤可讓您確保錯誤的套件不會匯入到圖表中的某個位置。這些規則甚至適用於相依性的相依性,因此如果您匯入一個套件,而該套件又匯入另一個具有拒絕標籤的套件,您仍然會收到規則違規通知。

小時

總計節省的運算時間
開始使用
遠端快取 →

本頁面