配置故事书文档插件以显示 theme.dark

Posted

技术标签:

【中文标题】配置故事书文档插件以显示 theme.dark【英文标题】:configure storybook docs addon to display theme.dark 【发布时间】:2021-02-27 10:12:52 【问题描述】:

我正在尝试将故事书配置为显示深色主题,但到目前为止我还没有找到任何解决此问题的方法。

所以我遵循了故事书文档, 我设置了 ma​​nager.js 文件,如下所示:

// .storybook/manager.js

import  addons  from '@storybook/addons';
import  themes  from '@storybook/theming';

addons.setConfig(
  theme: themes.dark,
);

我还将主题打印到控制台,所以我看到它到达了:

可能值得一提的是,当浏览器重新加载读取这个文件时, 但是如果我更改源代码并保存热重载不起作用..

以下是我在 .storybook/preview.js 中为文档指定相同主题的方式:

// .storybook/preview.js

import React from "react";
import  appTheme  from "../src/Common/theme";
import  ThemeProvider  from "styled-components";
import  makeDecorator  from "@storybook/addons";
import  addParameters, addDecorator  from "@storybook/react";
import defaultNotes from "./general-docs.md";
import  themes  from "@storybook/theming";

export const parameters = 
  docs: 
    theme: themes.dark
  
;

addParameters(
  notes: defaultNotes,
  options: 
    showRoots: true
  
);

const withStyledTheme = storyFn => 
  return <ThemeProvider theme=appTheme>storyFn()</ThemeProvider>;
;

const styledThemed = makeDecorator(
  name: "styled-theme",
  wrapper: withStyledTheme
);

addDecorator(styledThemed);
addParameters(parameters);

这就是 ma​​in.js 文件的样子:

module.exports = 
  stories: ["../src/**/*.stories.(ts|tsx|js|jsx|mdx)"],
  addons: [
    "@storybook/preset-create-react-app",
    "@storybook/addon-actions",
    "@storybook/addon-links",
    "@storybook/addon-actions/register",
    "@storybook/addon-knobs/register",
    "@storybook/addon-notes/register-panel",
    "storybook-addon-designs",
    "@storybook/addon-docs/preset"
  ]
;

我在这个项目中使用打字稿, 所以这里是 tsconfig.json


  "compilerOptions": 
    "experimentalDecorators": true,
    "target": "es5",
    "lib": ["dom", "dom.iterable", "esnext"],
    "allowJs": true,
    "skipLibCheck": true,
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "strict": true,
    "forceConsistentCasingInFileNames": true,
    "module": "esnext",
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "isolatedModules": true,
    "noEmit": true,
    "jsx": "preserve",
    "baseUrl": "src"
  ,
  "include": ["src"]

我在这里错过了什么?

【问题讨论】:

【参考方案1】:

我在同一个问题上被困了一段时间,但解决方案一直是in the doc:

//.storybook/preview.js
import  themes  from '@storybook/theming';

export const parameters = 
  docs: 
    theme: themes.dark,
  ,
;

是的,您必须在两个不同的文件中指定两次主题

【讨论】:

以上是关于配置故事书文档插件以显示 theme.dark的主要内容,如果未能解决你的问题,请参考以下文章

反应故事书插件旋钮未显示

如何使 React 故事书“插件链接”工作

如何禁用故事书中的“文档”选项卡?

寻找在故事书中显示我的图书馆版本的简单方法

如何在故事书中配置 webpack 以允许 babel 在项目文件夹之外导入反应组件

打字稿中的故事书配置