Storybook Vite 构建器使用 Vite(一个快速的 ESM 打包器)打包你的组件和故事。
- 对于使用 Vite 构建的应用程序:它允许在 Storybook 中复用现有配置。
- 对于使用 Webpack 构建的应用程序:它提供了更快的启动和刷新时间,但缺点是组件的执行环境与应用程序不同。
如果你在你的 Vite 应用程序中运行了 npx storybook@latest init
来包含 Storybook,那么构建器已经为你安装和配置。如果你需要,也可以手动选择它。
运行以下命令来安装构建器。
更新你的 Storybook 配置(在 .storybook/main.js|ts
中)以包含构建器。
默认情况下,Storybook 的 Vite 构建器包含一组支持框架的默认配置,这些配置将与你现有的配置文件合并。为了在使用 Vite 构建器时获得最佳体验,我们建议将所有配置直接应用到 Vite 的配置文件中(即 vite.config.js|ts
)。
Storybook 加载时会自动将配置合并到自己的配置中。但是,由于不同的项目可能会有特定的需求,你可能需要为 Storybook 提供自定义配置。在这种情况下,你可以修改配置文件 (.storybook/main.js|ts
) 并添加 viteFinal
配置函数,如下所示
异步函数 viteFinal
会接收一个带有默认构建器配置的 config
对象,并返回更新后的配置。
如果你需要自定义构建器的配置并根据你的环境应用特定选项,请扩展 viteFinal
函数,如下所示
默认情况下,Storybook 中的 Vite 构建器会在你的 Storybook 项目的根目录中搜索 Vite 配置文件。但是,你可以自定义它,使其在另一个位置查找配置文件。例如
💡如果你不希望 Storybook 自动加载 Vite 配置文件,可以使用 viteConfigPath
选项指向一个不存在的文件。
如果你需要,也可以使用 TypeScript 配置 Storybook 的 Vite 构建器。将你的 .storybook/main.js
重命名为 .storybook/main.ts
并进行如下调整
默认情况下,Vite 构建器会为提高安全性而启用 Vite 的 server.fs.strict
选项,将项目的 root
定义为 Storybook 的配置文件目录。如果需要覆盖它,可以使用 viteFinal
函数并进行调整。
目前,自动 ArgType 推断 仅适用于 React、Vue 3 和 Svelte(仅 JSDocs)。对于 React,Vite 构建器默认使用 react-docgen
,它是一种比 react-docgen-typescript
更快的解析 React 组件的替代方案。如果遇到任何问题,可以通过更新 Storybook 配置文件来恢复到 react-docgen-typescript
,如下所示
如果您从基于 Webpack 的项目(如 CRA)迁移到 Vite,并且已使用 @storybook/addon-interactions
加载项启用组件测试,您可能会遇到测试无法执行的情况,通知您 window
对象未定义。要解决此问题,可以在 Storybook 配置目录中创建一个 preview-head.html
文件,并包含以下内容
了解有关构建器的更多信息