MDX - 故事书 + React + Typescript
MDX - Storybook + React + Typescript
我尝试使用 MDX 标记为我的故事书构建实时文档。当我 运行 故事书时,我得到这个错误:
模块构建失败(来自 ./node_modules/babel-loader/lib/index.js):
SyntaxError: C:/Users/User/Desktop/priority-style-react/src/stories/Button1.stories.mdx: Unexpected token (12:9)
10 | const makeShortcode = name => function MDXDefaultShortcode(props) {
11 | console.warn("Component " + name + " was not imported, exported, or provided by MDXProvider as global scope")
> 12 | return <div {...props}/>
| ^
13 | };
14 | const Preview = makeShortcode("Preview");
15 | const layoutProps = {
我要加载的 webpack 配置 .mdx
是:
config.module.rules.push({
test: /\.mdx?$/,
use: [{loader: "babel-loader"}, {loader: '@mdx-js/loader'}],
exclude: /node_modules/,
include: [/src/]
});
故事书config.js:
import { configure, addDecorator } from '@storybook/react';
import { withKnobs } from '@storybook/addon-knobs';
import '../style/index.scss';
const req = require.context('../src/stories', true, /.stories.(tsx|mdx)/);
addDecorator(withKnobs);
configure(req, module);
看起来加载器工作不正常。
谁能帮助我了解我错过了什么?
好的,MDX 文件中有一些非常愚蠢的东西
我们说话时不接受空行。
const makeShortcode = name => function MDXDefaultShortcode(props) {
console.warn("Component " + name + " was not imported, exported, or provided by MDXProvider as global scope")
return <div {...props}/>
// remove this blank line here.
};
至
const makeShortcode = name => function MDXDefaultShortcode(props) {
console.warn("Component " + name + " was not imported, exported, or provided by MDXProvider as global scope")
return <div {...props}/>
};
它应该可以工作,因为我为此摸索了几个小时。
所以,伙计们,也许这个答案会对某人有所帮助并节省很多宝贵的时间。
我通过删除 webpack.config.js
中 .mdx
扩展的配置解决了这个问题。我刚刚离开了我的故事书 config.js。然后问题就消失了。
此外,如果您的 .mdx 文件中的 JSX 代码之间有空行,您将面临这个问题,正如 Zunaib Imtiaz 所回答的那样。
伙计们,祝你好运!
我尝试使用 MDX 标记为我的故事书构建实时文档。当我 运行 故事书时,我得到这个错误:
模块构建失败(来自 ./node_modules/babel-loader/lib/index.js):
SyntaxError: C:/Users/User/Desktop/priority-style-react/src/stories/Button1.stories.mdx: Unexpected token (12:9)
10 | const makeShortcode = name => function MDXDefaultShortcode(props) {
11 | console.warn("Component " + name + " was not imported, exported, or provided by MDXProvider as global scope")
> 12 | return <div {...props}/>
| ^
13 | };
14 | const Preview = makeShortcode("Preview");
15 | const layoutProps = {
我要加载的 webpack 配置 .mdx
是:
config.module.rules.push({
test: /\.mdx?$/,
use: [{loader: "babel-loader"}, {loader: '@mdx-js/loader'}],
exclude: /node_modules/,
include: [/src/]
});
故事书config.js:
import { configure, addDecorator } from '@storybook/react';
import { withKnobs } from '@storybook/addon-knobs';
import '../style/index.scss';
const req = require.context('../src/stories', true, /.stories.(tsx|mdx)/);
addDecorator(withKnobs);
configure(req, module);
看起来加载器工作不正常。 谁能帮助我了解我错过了什么?
好的,MDX 文件中有一些非常愚蠢的东西
我们说话时不接受空行。
const makeShortcode = name => function MDXDefaultShortcode(props) {
console.warn("Component " + name + " was not imported, exported, or provided by MDXProvider as global scope")
return <div {...props}/>
// remove this blank line here.
};
至
const makeShortcode = name => function MDXDefaultShortcode(props) {
console.warn("Component " + name + " was not imported, exported, or provided by MDXProvider as global scope")
return <div {...props}/>
};
它应该可以工作,因为我为此摸索了几个小时。
所以,伙计们,也许这个答案会对某人有所帮助并节省很多宝贵的时间。
我通过删除 webpack.config.js
中 .mdx
扩展的配置解决了这个问题。我刚刚离开了我的故事书 config.js。然后问题就消失了。
此外,如果您的 .mdx 文件中的 JSX 代码之间有空行,您将面临这个问题,正如 Zunaib Imtiaz 所回答的那样。
伙计们,祝你好运!