Next.js 与 Styleguidist 和 Fela (React)
Next.js with Styleguidist and Fela (React)
有没有人成功设置 next.js Fela 和 Styleguidist?
Styleguidist 需要 Next.js webpack 配置,但我不能只 link 它,如下所述:https://react-styleguidist.js.org/docs/webpack.html
我正在使用这个示例应用程序:https://github.com/zeit/next.js/tree/canary/examples/with-fela
这是我的 styleguide.config.js 的样子:
module.exports = {
components: 'components/**/*.js',
webpackConfig: {
entry: './pages/_document.js',
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: "babel-loader",
options: {
presets: ['@babel/react']
}
}
}
]
}
}
};
该应用程序在 Next.js 服务器上完美运行,但是 Styleguidist 服务器向我发送了以下错误消息:
Error: createComponent() can't render styles without the renderer in the context. Missing react-fela's at the app root?
可能是因为缺少正确的应用根目录?
提前致谢。
所以 Artem 向我指出了一个解决方案,以防万一有人像我一样被卡住,你应该像这样添加一个包装器:
styleguideComponents: {
Wrapper: path.join(__dirname, '/FelaProvider')
},
所以我的 styleguide.config.js 看起来像下面这样:
const path = require('path')
module.exports = {
components: 'components/**/*.js',
styleguideComponents: {
Wrapper: path.join(__dirname, '/FelaProvider')
},
webpackConfig: {
entry: 'next/lib/app.js',
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: "babel-loader",
options: {
presets: ['@babel/react' ],
plugins: ['@babel/plugin-proposal-class-properties']
}
}
}
]
}
}
};
有没有人成功设置 next.js Fela 和 Styleguidist?
Styleguidist 需要 Next.js webpack 配置,但我不能只 link 它,如下所述:https://react-styleguidist.js.org/docs/webpack.html
我正在使用这个示例应用程序:https://github.com/zeit/next.js/tree/canary/examples/with-fela
这是我的 styleguide.config.js 的样子:
module.exports = {
components: 'components/**/*.js',
webpackConfig: {
entry: './pages/_document.js',
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: "babel-loader",
options: {
presets: ['@babel/react']
}
}
}
]
}
}
};
该应用程序在 Next.js 服务器上完美运行,但是 Styleguidist 服务器向我发送了以下错误消息:
Error: createComponent() can't render styles without the renderer in the context. Missing react-fela's at the app root?
可能是因为缺少正确的应用根目录?
提前致谢。
所以 Artem 向我指出了一个解决方案,以防万一有人像我一样被卡住,你应该像这样添加一个包装器:
styleguideComponents: {
Wrapper: path.join(__dirname, '/FelaProvider')
},
所以我的 styleguide.config.js 看起来像下面这样:
const path = require('path')
module.exports = {
components: 'components/**/*.js',
styleguideComponents: {
Wrapper: path.join(__dirname, '/FelaProvider')
},
webpackConfig: {
entry: 'next/lib/app.js',
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: "babel-loader",
options: {
presets: ['@babel/react' ],
plugins: ['@babel/plugin-proposal-class-properties']
}
}
}
]
}
}
};