回到部落格

零配置 Storybook

簡單設定,立即提升生產力

loading
Michael Shilman
@mshilman
上次更新

Storybook 最強大的優勢同時也是它的弱點。

從 Airbnb 到 BBC,成千上萬的領先團隊選擇 Storybook,因為它能與各種框架和技術堆疊協同運作。 然而,大量的配置選項可能會使 Storybook 的設定變得困難。

作為維護者,我們的目標是在為進階團隊保留強大的配置選項的同時,讓您快速完成設定。 這就是為什麼我很興奮地與大家分享全新的 6.0 版本功能,這些功能是朝向零配置 Storybook 的一大躍進。

  • 🧰 內建 TypeScript 支援: 開箱即用的 TS 相容性。
  • 💎 Storybook Essentials: 適用於每個專案的最佳實務擴充套件。
  • 🔌 專案整合: 熱門應用程式框架的預設設定。

🗡 彈性是一把雙面刃

Storybook 可以配置為符合任何建置設定。 它具有廣泛的 API 和豐富的擴充套件生態系統,可適應無數的使用案例。

彈性使 Storybook 能夠適應大型企業和雄心勃勃的新創公司的各種需求。 但 Storybook 的初始設定對於新用戶來說可能令人望而卻步。

理想情況下,Storybook 設定應為零配置,但對於較大型的專案而言,仍可完全調整。 在過去一年中,團隊在朝向零配置方面取得了巨大進展。

現在在 6.0 版本中,整合 Storybook 變得更加容易。

🧰 內建 TypeScript

Storybook 6.0 版本透過 Babel 轉譯支援 TypeScript,並可選擇使用 fork-ts-checker-webpack-plugin 進行非同步類型檢查。 這與 Create React App 使用的方式類似

TypeScript 繼續被包括 NextJS、React Native CLI、Expo、Yarn、Jest、Apollo 和 Storybook 本身在內的熱門工具採用。 創造流暢的 TS 體驗對於 Storybook 未來的成功至關重要。

現在,當您將 Storybook 新增到您的 TS 專案時,它就能直接運作。 請參閱文件以取得更多資訊和進階選項。

💎 Storybook Essentials

由於有數百個第三方擴充套件,可以執行從可訪問性檢查到設計交付的各種操作,因此 Storybook 具有完全的自訂性。

Storybook Essentials 是核心團隊策劃的一系列擴充套件,這些擴充套件被認為是開箱即用 Storybook 體驗的核心。 它們經過緊密整合,並與新的 Storybook 安裝一起預設發布。

Essentials 目前包含以下內容

  • 文件:使用您的 stories 產生最佳實務自動產生文件
  • Controls:調整元件屬性以探索不同的狀態
  • Actions:記錄 UI 動作以驗證元件的互動行為
  • Viewport:查看在不同裝置視窗中的響應式行為
  • Backgrounds:查看您的元件在不同顏色和樣式下的呈現
  • Toolbars:用於主題設定、i18n 等的自訂工具列 UI

我們將優先考慮 Essentials 的維護、支援、文件和互操作性。 我們也將盡力確保它們能與數百個其他 Storybook 擴充套件以及託管的 Storybook 服務(如 Chromatic)順利運作。

文件中深入瞭解 Essentials。

🔌 專案整合

Storybook 設定變得更容易的最後一種方式是透過整合,這些整合預先配置 Storybook 以與熱門應用程式框架無縫協同運作。

我們很高興看到一波新的第三方整合 (🔥) 正在由應用程式框架社群本身開發、發布和維護。

以下是依框架劃分的整合列表

如果您想合作進行新的整合,請在 Twitter 上 私訊我

⚡ 1 分鐘安裝

立即在 Storybook 6.0 中試用內建 Typescript 和 Essentials。

您可以將 Storybook 啟動載入到現有的應用程式中

npx sb init

如果是 Typescript 應用程式,它應該可以直接運作,無需額外配置。 Essentials 也已預先安裝。

或者,若要升級現有的 Storybook

npx sb upgrade

Typescript 是內建的,因此如果您已為 typescript 配置 Storybook,則應移除該配置

升級後,您可以使用 npmyarn 安裝 Essentials,並更新您的 .storybook/main.js

$ yarn add @storybook/addon-essentials --dev

// main.js
module.exports = {
  addons: ['@storybook/addon-essentials'],
};

參與其中

Typescript 支援由 Brody McKeeMichael Shilman (我!) 新增。 Essentials 由 Michael ShilmanZoltan OlahTom ColemanClément Dungler 開發。

Storybook 由 1000 多名開源貢獻者維護,並由頂級維護者組成的指導委員會指導。 如果您有興趣貢獻,請在 GitHub 上查看 Storybook,建立 issue 或提交 pull request。 在 Open Collective 上捐款。 在 Discord 中與我們聊天 — 通常會有維護者在線上。

加入 Storybook 電子郵件列表

獲取最新的新聞、更新和發布資訊

6,730位開發人員以及更多

我們正在招聘!

加入 Storybook 和 Chromatic 背後的團隊。 建構被數十萬開發人員用於生產環境的工具。 優先考慮遠端工作。

查看職位

熱門文章

Storybook 6 遷移指南

提升您的元件開發平台
loading
Michael Shilman

Storybook 6.0

生產級元件開發
loading
Michael Shilman

Storybook Controls

無需程式碼即可即時編輯 UI 元件
loading
Michael Shilman
加入社群
6,730位開發人員以及更多
為何為何選擇 Storybook元件驅動的 UI
文件指南教學更新日誌遙測
社群擴充套件參與其中部落格
展示探索專案元件詞彙表
開源軟體
Storybook - Storybook 繁體中文

特別感謝 Netlify CircleCI