總覽
Fuchsia 專案遵循官方 Bazel .bzl 樣式指南,但有少數例外。除了常見的 Bazel 樣式指南和最佳做法外,本頁也提供相關指引。
.bzl 檔案最常用於定義規則、巨集和函式,相關資訊請參閱其他指南。
本頁面屬於 Bazel 樣式指南和最佳做法的一部分。
瀏覽權限
載入瀏覽權限
與 .gni 檔案不同,.bzl 檔案支援載入瀏覽權限,可限制載入來源。根據預設,系統不會設下任何限制。
請務必在 .bzl 檔案中指定 visibility:
如果
.bzl檔案並非專門用於套件外部,請使用visibility("private")。- 尤其是當套件包含公開和私人
.bzl檔案時,建議將後者放在private/目錄中。Bazel 具有限制在這類目錄中載入檔案的機制。
- 尤其是當套件包含公開和私人
否則,請使用
visibility([...])指定可能使用該套件的套件 (目錄)。
載入 visibility 的語法與目標 visibility 不同:
僅路徑相當於
:__pkg__。/...後面的路徑相當於:__subpackages__。
如果是真正要在整個程式碼集中使用的常見目標,則可使用 "//..."。請勿使用公開瀏覽權限 (visibility("public")) [SHAC 錯誤]。不過,在大多數情況下,一組頂層和/或第二層目錄 (例如 "//src/..." 和 "//sdk/lib/...") 就足夠。
符號顯示設定
在 .bzl 檔案中,請在符號名稱前加上底線,限制只能在 .bzl 檔案中存取,防止其他檔案使用,即使在同一個套件 (目錄) 中也一樣。
請勿建立 defs.bzl 檔案
雖然您可能會看到這些符號 (尤其是在第三方存放區中),但定義或匯出不一定會一起使用的多個符號 (如 defs.bzl 檔案中常見的情況) 是一種反模式。請參閱「限制每個 .bzl 檔案匯出的符號」。無論如何,請選擇更具描述性的檔案名稱。