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

Storybook 7添加教程代码片段遇格式与Lint问题求解决方案

Storybook 7 代码片段展示优化方案

一、解决Linter错误与格式问题

1. 修复“预期XML元素”错误

这类错误多是ESLint将MDX文件中的代码块误判为XML内容导致,解决步骤:

  • 安装MDX的ESLint插件:npm install eslint-plugin-mdx --save-dev
  • 在.eslintrc.json中配置MDX规则:
    {
      "extends": ["plugin:mdx/recommended"],
      "overrides": [
        {
          "files": ["*.mdx"],
          "parser": "eslint-plugin-mdx"
        }
      ]
    }
    
  • 确保MDX中的代码块用正确语法包裹,比如用```javascript明确标记代码语言,避免语法混淆。

2. 优化代码格式

用Prettier配合MDX插件自动规范代码格式:

  • 安装依赖:npm install prettier prettier-plugin-mdx --save-dev
  • 在.prettierrc中添加MDX支持:
    {
      "plugins": ["prettier-plugin-mdx"]
    }
    

运行Prettier后,代码块的缩进、换行将自动标准化。

二、通过导入方式展示代码(无需复制粘贴)

Storybook 7支持多种导入代码的方式,避免手动复制带来的维护问题:

1. 导入原始代码文件内容

利用模块的?raw后缀直接导入文件原始文本,在MDX中展示:

import fullWidthCode from './FullWidth.stories.js?raw';

```javascript
{fullWidthCode}
- 注意:Vite默认支持`?raw`导入;若使用Webpack,需配置`raw-loader`或设置`module: { rules: [{ test: /\.stories\.js$/, type: 'asset/source' }] }`。

### 2. 关联Story自动展示代码
使用`Source`组件直接关联目标Story,自动同步展示其代码:
```mdx
import { Source } from '@storybook/addon-docs';
import { FullWidth } from './FullWidth.stories.js';

<Source of={FullWidth} language="javascript" />

这种方式会自动获取FullWidth Story的代码,后续Story代码更新时,文档片段也会同步更新,无需手动修改。

3. 用Code组件灵活展示

通过@storybook/addon-docs的Code组件,自定义代码展示样式:

import { Code } from '@storybook/addon-docs';
import fullWidthCode from './FullWidth.stories.js?raw';

<Code language="javascript" title="FullWidth Story 代码">
  {fullWidthCode}
</Code>

三、额外配置检查

确保已安装@storybook/addon-docs并在.storybook/main.js中启用:

export default {
  addons: ['@storybook/addon-docs'],
};

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 21:22:22