参加直播:周四,美国东部时间上午 11 点,Storybook 9 发布及问答

Playground

一个 Playground,让使用者学习如何使用组件库或复现错误

在 Github 上查看

Playground - Storybook 插件

此插件通过允许您以交互方式使用组件来增强您的 Storybook 体验。它非常适合希望实时实验、调试问题或构建复杂组合的开发者。

img.png

安装

要安装此插件,请在您的项目目录中运行以下命令之一

yarn add -D storybook-addon-playground
# or
npm install -D storybook-addon-playground

配置

将插件添加到您的 Storybook 配置中,文件路径为 .storybook/main.js.storybook/main.ts

const config = {
  addons: [
    // rest of your addons ...
    "storybook-addon-playground",
  ],
};

插件配置通过 Storybook 的 preview 参数完成。

参数 必需 默认值 描述
storyId true 您的 playground 在 Storybook 中的故事 ID。
components true 一个对象,包含应该在 playground 中渲染的组件。键是组件名称,值是组件本身。
autocompletions false [] 应在 playground 中使用的自动补全数组。建议使用 react-docgen 生成文档输出。
editorTheme false 您的 Storybook 主题 应在 playground 中使用的主题。
initialCode false 空编辑器 应在 playground 中渲染的初始代码(“welcome”)。
share false false 是否允许分享功能。

在您的 .storybook/preview.ts 文件中,您应该添加类似以下内容的代码

import MyComponentsLibrary from "my-components-library";
import MyIconsLibrary from "my-icons-library";
import reactDocgenOutput from "./react-docgen-output.json";
import { generateAutocompletions } from "storybook-addon-playground";

const preview = {
  parameters: {
    playground: {
      storyId: "playground",
      components: { ...MyComponentsLibrary, ...MyIconsLibrary },
      autocompletions: generateAutocompletions(reactDocgenOutput),
      editorTheme: "light",
      introCode: { jsx: `<div>Welcome to my Playground!</div>`, css: "" },
    },
  },
};

在您的 Storybook 故事中设置 playground 环境

import { withPlayground } from "storybook-addon-playground";

export default {
  title: "Playground",
  decorators: [withPlayground],
};

export const Playground = {};

用法

要使用 Playground,请导航到 Storybook UI 并选择带有 playground 装饰器的故事。在您的插件面板中,您会看到一个交互式代码编辑器与您的组件并排显示,您可以在其中修改代码并立即看到更改反映出来。

贡献

欢迎贡献!请随时提交问题或拉取请求。

本地开发

安装依赖并启动

yarn
yarn start

访问 localhost:6006

添加新图标

图标使用 svgr 生成。

要将新图标添加到插件中,请将图标放置在仓库中的某个位置并运行以下命令

yarn build:icons path/to/your/icons

构建

Rollup

Rollup 用于构建插件以进行发布。

Vite

Vite 将构建提供给本地 Storybook,用于测试和开发目的。

制作人
  • rivkaungar
    rivkaungar
  • talkor
    talkor
  • yossisaadi.monday
    yossisaadi.monday
  • vibe-publisher
    vibe-publisher
  • monday-npm-publisher
    monday-npm-publisher
支持
    React
标签