架構
這個圖表說明 Docusaurus 如何建置您的應用程式。外掛程式各自收集自己的內容並傳送 JSON 資料,佈景主題提供接收 JSON 資料作為路由模組的配置元件佈局。套件組建器整理所有元件,並傳送伺服器套件組和用戶端套件組。
儘管您(外掛程式作者或網站建立者)總是寫著 JavaScript,請務必記住 JS 實際上是在不同的環境中執行
- 所有外掛程式生命週期方法都以 Node 執行。因此,在我們在程式碼庫中支援 ES 模組之前,外掛程式原始程式碼必須以可匯入的 ES 模組,或可
require
'd 的 CommonJS 形式提供。 - 佈景主題程式碼以 Webpack 建置。它們可作為 ESM 提供,遵循 React 慣例。
外掛程式程式碼和佈景主題程式碼從不直接進行互相匯入:他們僅透過通訊協定(在本例中,透過 JSON 暫存檔和呼叫 addRoute
)進行通訊。一個有用的心智模型是,想像外掛程式不是用 JavaScript 編寫,而是用 Rust 等其他語言編寫。對於使用者,與外掛程式互動的唯一方法是透過 docusaurus.config.js
,它本身在 Node 中執行(因此您可以使用 require
並將回呼函式傳遞做為外掛程式選項)。
在打包過程中,設定檔本身會序列化並打包,讓主題能透過 useDocusaurusContext()
存取設定選項,例如 themeConfig
或 baseUrl
。不過,siteConfig
物件只包含可序列化的值(在 JSON.stringify()
後仍能保留的值)。函式、正規表示式等在客戶端上會遺失。themeConfig
的設計是完全可序列化的。