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

Storybook 6中使用css-modules无报错但样式不生效如何解决?

解决方案

下面是可落地的排查和修复步骤:

  • 第一步:配置Storybook支持CSS Modules
    Storybook 6默认不会自动识别.module.css后缀的CSS Modules文件,需要手动在.storybook/main.js中添加webpack处理规则:
module.exports = {
  stories: ["../src/**/*.stories.mdx", "../src/**/*.stories.@(js|jsx|ts|tsx)"],
  addons: ["@storybook/addon-essentials"],
  webpackFinal: async (config) => {
    // 找到现有的css处理规则,排除.module.css文件走普通css处理逻辑
    const cssRule = config.module.rules.find(
      (rule) => rule.test.toString() === /\.css$/.toString()
    );
    cssRule.exclude = /\.module\.css$/;

    // 新增针对.module.css的专属处理规则
    config.module.rules.push({
      test: /\.module\.css$/,
      use: [
        "style-loader",
        {
          loader: "css-loader",
          options: {
            modules: {
              localIdentName: "[name]__[local]--[hash:base64:5]",
            },
          },
        },
      ],
    });
    return config;
  },
};

如果运行时报错找不到对应loader,执行npm i style-loader css-loader -D安装依赖即可。

  • 第二步:检查自定义CSS变量是否引入
    你样式中使用的--colors-transparent、--colors-white等自定义变量,需要在Storybook全局引入对应的变量定义文件,操作如下:
    在.storybook/preview.js中引入全局样式文件:
// 替换路径为你定义CSS变量的实际文件路径
import '../path/to/your/global.css';
export const parameters = {
  actions: { argTypesRegex: "^on[A-Z].*" },
  controls: {
    matchers: {
      color: /(background|color)$/i,
      date: /Date$/,
    },
  },
}
  • 第三步:补全Button组件的类型样式绑定
    你当前的Button组件只绑定了.button基础类,没有绑定type对应的样式类,你已经安装了classnames依赖,可直接修改Button.js代码如下:
import React from "react";
import PropTypes from "prop-types";
import classNames from 'classnames';
import style from "./styles.module.css";

const Button = ({ type, children }) => (
  <button className={classNames(style.button, style[`type-${type}`])}>{children}</button> 
);

// 其余propTypes、defaultProps代码保持不变

配置完成后重启Storybook即可生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 20:06:05