首页 > 解决方案 > Tailwind css 类未在 Storybook 构建中显示

问题描述

我正在尝试用顺风 css 构建我的故事书。运行时build-storybook,组件使用顺风类呈现。不幸的是,当我构建故事书并运行创建构建storybook-staticnpx http-server storybook-static,类没有加载到故事中,并且组件显示没有样式。

这是我项目的 repro repo: https ://gitlab.com/ens.evelyn.development/storybook-issue

这是我的main.js

    const path = require('path')

module.exports = {
  "stories": [
    "../src/components/**/**/*.stories.mdx",
    "../src/components/**/**/*.stories.@(js|jsx|ts|tsx)"
  ],
  "addons": [
    "@storybook/addon-links",
    "@storybook/addon-essentials",
    {
     name: '@storybook/addon-postcss',
     options: {
       postcssLoaderOptions: {
         implementation: require('postcss'),
       },
     },
   },        
   "@storybook/addon-actions",
    "storybook-tailwind-dark-mode"
  ]}

我的项目结构如下所示:

.storybook 
src
  components 
     subdir
       Button
         index.tsx
         button.stories.js 
  styles
    index.css (<-- tailwindcss file)

非常感谢任何提示或建议。

标签: cssreactjstailwind-cssstorybook

解决方案


更新:我的原始答案可能对其他人有用,因此我将其留作参考。但是,在这种情况下,问题出在 tailwind.config.js 中。

改变

purge: {
    mode: 'all',
    content: [
      './src/components/**/**/*.{ts, tsx}'
    ],
  },

purge: ['./src/**/*.{js,jsx,ts,tsx}'],

原来的:

刚刚对其进行了测试,故事书按我的预期构建。我认为我们配置的主要区别在于我没有在 main.js 中更改 Storybook 的 webpack 配置。相反,我将@storybook/addon-postcss用于 postcss@^8(tailwind@^2 需要):

// main.js
module.exports = {
  ...
  addons: [
    ...
    {
      name: '@storybook/addon-postcss',
      options: {
        postcssLoaderOptions: {
          implementation: require('postcss'),
        },
      },
    },
  ],
};

我在 postcss.config.js 中指定了必要的插件(在我的项目根目录中):

// postcss.config.js
module.exports = {
    plugins: {
      tailwindcss: {},
      autoprefixer: {},
    },
  }

还值得注意的是,我直接在 Storybook 的 preview.js 中导入 Tailwind,而不是通过我自己的 css 文件:

// preview.js
import 'tailwindcss/tailwind.css';
export const parameters = {...}

希望进行这些更改将使 Tailwind 为您工作。

为了比较(见下面的评论),这里是我的 build storybook-static 目录的内容:

故事书静态目录的内容


推荐阅读