配置 Storybook
Storybook 通过名为 .storybook
的文件夹进行配置,该文件夹包含各种配置文件。
请注意,您可以通过将 -c
标志设置为 storybook dev
和 storybook build
CLI 命令 来更改 Storybook 使用的文件夹。
配置您的 Storybook 项目
Storybook 的主要配置(即 main.js|ts
)定义了 Storybook 项目的行为,包括故事的位置、使用的插件、功能标志和其他项目特定设置。此文件应位于项目根目录下的 .storybook
文件夹中。您可以使用 JavaScript 或 TypeScript 编写此文件。下面列出了可用的选项以及如何使用它们的示例。
配置元素 | 描述 |
---|---|
stories | 指示 故事文件位置 的 glob 数组,相对于 main.js |
staticDirs | 设置 Storybook 要加载的 静态文件 目录列表staticDirs: ['../public'] |
addons | 设置 Storybook 加载的 插件 列表addons: ['@storybook/addon-essentials'] |
typescript | 配置 Storybook 如何处理 TypeScript 文件typescript: { check: false, checkOptions: {} } |
framework | 根据一组 特定于框架的 设置配置 Storybookframework: { name: '@storybook/svelte-vite', options:{} } |
core | 配置 Storybook 的 内部功能core: { disableTelemetry: true, } |
docs | 配置 Storybook 的 自动生成的文档docs: { autodocs: 'tag' } |
features | 启用 Storybook 的 其他功能 请参见下表以了解可用功能的列表 |
refs | 配置 Storybook 组合refs: { example: { title: 'ExampleStorybook', url:'https://your-url.com' } } |
logLevel | 配置浏览器终端中的 Storybook 日志。对调试很有用logLevel: 'debug' |
webpackFinal | 自定义 Storybook 的 Webpack 设置webpackFinal: async (config:any) => { return config; } |
viteFinal | 使用 vite 构建器 时自定义 Storybook 的 Vite 设置viteFinal: async (config: Vite.InlineConfig, options: Options) => { return config; } |
env | 定义自定义 Storybook 环境变量。env: (config) => ({...config, EXAMPLE_VAR: 'Example var' }), |
build | 通过从捆绑包中排除特定功能来优化 Storybook 的生产 构建 以提高性能。当构建时间减少成为优先事项时非常有用。build: { test: {} } |
配置故事加载
默认情况下,Storybook 将根据 .storybook/main.js|ts
中匹配项目中所有扩展名为 .stories.*
的文件的 glob(模式匹配字符串)加载项目中的故事。目的是让您将故事文件与它记录的组件放在一起。
•
└── components
├── Button.js
└── Button.stories.js
如果要使用其他命名约定,则可以使用 picomatch 支持的语法更改 glob。
例如,如果您想从 my-project/src/components
目录中提取 .md
和 .js
文件,您可以编写以下代码:
使用配置对象
此外,您可以自定义 Storybook 配置,以便基于配置对象加载您的故事。例如,如果您想从 packages/components
目录加载您的故事,您可以将 stories
配置字段调整为以下内容:
当 Storybook 启动时,它将在 packages/components
目录中查找任何包含 stories
扩展名的文件,并为您的故事生成标题。
使用目录
您还可以简化 Storybook 配置并使用目录加载故事。例如,如果您想加载 packages/MyStories
中的所有故事,您可以按如下方式调整配置:
使用自定义实现
您还可以调整 Storybook 配置并实现自定义逻辑来加载您的故事。例如,假设您正在处理一个项目,该项目包含常规故事加载方式无法解决的特定模式。在这种情况下,您可以按如下方式调整配置:
已知限制
由于 Storybook 中故事的当前索引方式,按需加载故事目前存在一些小限制。
- 支持版本 1 到版本 3 的 CSF 格式。
- 基于受限 API 允许自定义
storySort
函数。
配置故事渲染
要控制故事的渲染方式并添加全局 装饰器 和 参数,请创建一个 .storybook/preview.js
文件。此文件加载到画布 UI 中,即“预览”iframe,它以隔离方式渲染您的组件。将 preview.js
用于应用于所有故事的全局代码(例如 CSS 导入 或 JavaScript 模拟)。
preview.js
文件可以是 ES 模块,并导出以下键:
如果您希望更改故事的排序方式,请阅读有关 排序故事 的内容。
配置 Storybook 的 UI
要控制 Storybook UI(**“管理器”**)的行为,您可以创建一个 .storybook/manager.js
文件。