Storybook
Storybook 是一種在隔離環境中建立 UI 元件的熱門方式。透過將 Storybook 放入您的 Turborepo 中,您可以輕鬆地與您的應用程式一起開發您的設計系統。
快速入門
如果您寧願使用範本,本指南將逐步說明如何在 Vercel 上建立此 Storybook/Turborepo 範本。
指南
新增 Storybook 應用程式
在 apps/storybook
目錄中,初始化一個新的 Storybook 應用程式
依照提示建立應用程式。在本指南的其餘部分,我們將假設使用 React 和 TypeScript。
要知道
在完成 Storybook 的入門流程後,您可以解除安裝入門附加元件。
為您的 Button 元件設定一個 story
刪除 Storybook 鷹架工具建立的 src/stories
中的 stories 和元件。您將自行建立。
例如,以下是來自 @repo/ui/button
的 Button
元件的 story。
將指令碼與您的任務對齊
最後,將新的 Storybook 應用程式整合到您的 Turborepo 中
這些指令碼現在將會透過您的 turbo.json
中的 turbo dev
和 turbo build
任務執行。
為了確保當您執行 build
時檔案輸出會被快取,請將 storybook-static
新增至您的 turbo.json
build 任務的輸出中
更多提示
共同放置 stories
如果您偏好將您的 stories 與其原始程式碼共同放置 (而不是將它們放在 Storybook 應用程式中),您將需要額外的設定。
重新設定 Storybook 來源
在 .storybook/main.ts
中,將 config
中的 stories
路徑變更為您想要擷取的目錄。例如,如果您想要在 UI 套件中撰寫 stories
將 story 檔案移至 UI 套件
依照上方的指南,將 ./apps/storybook/src/stories/Button.stories.tsx
檔案移動到 ./packages/ui/src/Button.stories.tsx
。
更新元件匯入,使其參考現在共同放置的模組。例如,在 story 的匯入中
要知道
您可能還需要根據您的變更和使用情況更新絕對匯入。
您還需要安裝撰寫 stories 所需的任何 Storybook 套件。例如,從上方移動 story 將需要您將 @storybook/react
安裝到您的 @repo/ui
套件中。
設定快取
由於 stories 現在位於 UI 套件中,因此對這些 stories 的變更可能會導致任何依賴您的 UI 套件的建置快取失效。但是,變更 story 並不表示您的生產應用程式應該錯過快取。
為了防止這種情況,請從您根目錄的 turbo.json
中 build
任務的輸入中排除 stories。您還需要建立一個 build:storybook
任務,您稍後會需要它
此外,在 storybook
應用程式中建立一個套件設定,以便 在建置 Storybook 應用程式時,特別考慮 stories
要知道
如果您使用編譯套件模式,您可能還需要將 ^build
新增至您的 dependsOn
。
重新命名建置指令碼
最後,請確保您用於建置 Storybook 的指令碼使用我們剛才編寫的設定,方法是將其重新命名為任務的名稱
曾經是 "build"
的指令碼現在是 "build:storybook"
,以確保 stories 包含在快取的雜湊中。
驗證您的設定
為了確保您的設定正確
- 執行
turbo build:storybook build
。您應該會看到快取失效。 - 再次執行
turbo build:storybook build
。您應該會看到所有快取命中。 - 在您的
@repo/ui
套件中對 story 進行程式碼變更。 - 再次執行
turbo build:storybook build
。您應該 只看到 Storybook 應用程式的快取失效。其他所有內容都應該命中快取。
新增 CSS
如果您的 UI 套件匯出自己的 CSS,您需要將其新增至 Storybook 應用程式中的渲染,這與您將其新增至您的應用程式的方式類似。Storybook 文件建議您將其新增至 .storybook/preview.ts
檔案中。
這有幫助嗎?