You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Storybook 7.5.1加载name.stories.mdx报错,重命名后缀可正常运行

Storybook 7.5.1中*.stories.mdx文件报错indexer.createIndex is not a function的排查方案

问题背景

将基于React-Vite的设计系统从Storybook 6.x升级至7.5.1版本并固定所有依赖后,遇到以下异常:

  • 所有命名为name.stories.mdx的MDX文件启动时抛出错误:
Unable to index ./src/name.stories.mdx:
WARN   TypeError: indexer.createIndex is not a function
  • 修改文件名(如改为name.stories.xxx.mdx,内容完全不变)后,Storybook可正常渲染该故事。

当前使用的main.ts配置如下:

import type { StorybookConfig } from '@storybook/react-vite'
import { mergeConfig } from 'vite'

const config: StorybookConfig = {
  stories: [
    '../src/name.stories.@(mdx)',
  ],
  addons: [
    '@storybook/addon-links',
    '@storybook/addon-essentials',
    '@storybook/addon-interactions',
    '@storybook/addon-onboarding',
  ],
  framework: '@storybook/react-vite',
  docs: {
    autodocs: 'tag',
  },
  viteFinal: async (config) =>
    mergeConfig(config, {
      base: './', // Set the base path for Storybook builds to ensure assets are loaded correctly
    }),
}

export default config

可能的原因与排查建议

  • 默认文件匹配逻辑冲突:*.stories.mdx是Storybook默认识别的故事文件格式,升级后内部索引逻辑可能对该命名格式有特殊处理,导致索引器实例异常。建议修改stories配置为通用匹配规则(如../src/**/*.stories.@(mdx|js|jsx|ts|tsx)),而非指定单个文件,测试是否仍触发错误。
  • Autodocs索引逻辑异常:开启的autodocs: 'tag'可能对标准命名的stories.mdx文件有专属索引逻辑,升级后该模块存在兼容性问题。可暂时关闭autodocs配置,验证name.stories.mdx是否能正常加载。
  • 依赖锁定后的兼容性问题:虽固定了依赖版本,但Storybook 7.x部分插件间可能存在隐性冲突,或残留6.x版本的旧依赖。建议删除node_modules和锁文件(package-lock.json/yarn.lock)后重新安装,确保依赖树一致性;同时检查package.json是否存在未升级的旧版Storybook插件。
  • Vite配置影响:viteFinal中设置的base: './'可能干扰Storybook内部文件解析路径,导致索引器无法正确定位文件。可暂时移除该配置,测试问题是否解决。
  • 内部索引模块bug:错误指向indexer.createIndex方法不存在,可能是Storybook内部索引模块的已知bug。建议升级至7.5.x最新补丁版本(如7.5.3),或在main.ts中添加features: { storyStoreV7: true }切换至新故事存储机制,尝试绕过旧索引逻辑问题。

内容的提问来源于stack exchange,提问作者SebastianG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 22:55:00