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

使用react-css-modules生成随机类名,如何得到Component_myBtn_XxXx格式类名

解决css modules生成自定义格式类名的方法

你的问题是css-loader默认开启modules时使用纯哈希作为类名,只需要修改webpack配置中css-loader的modules配置项即可实现自定义类名格式。

配置步骤

  1. 打开项目根目录的webpack.config.js配置文件,找到处理.css后缀文件的规则段
  2. 修改css-loader的配置项,新增modules.localIdentName参数指定类名生成规则,参考配置如下:
// webpack.config.js 核心配置片段
module.exports = {
  // 其他webpack配置(entry、output、plugins等保持不变)
  module: {
    rules: [
      {
        // 匹配css文件
        test: /\.css$/,
        use: [
          // 开发环境用style-loader,生产环境如果用了MiniCssExtractPlugin就替换为MiniCssExtractPlugin.loader
          'style-loader',
          {
            loader: 'css-loader',
            options: {
              modules: {
                // 自定义类名格式:[css文件名]_[原始类名]_[5位哈希]
                localIdentName: '[name]_[local]_[hash:base64:5]',
                // 仅对后缀为.module.css的文件启用css modules,不影响全局css
                auto: /\.module\.css$/i
              }
            }
          }
        ]
      },
      // 如果项目使用less,同步修改less的处理规则
      {
        test: /\.less$/,
        use: [
          'style-loader',
          {
            loader: 'css-loader',
            options: {
              modules: {
                localIdentName: '[name]_[local]_[hash:base64:5]',
                auto: /\.module\.less$/i
              }
            }
          },
          'less-loader'
        ]
      }
    ]
  }
}
  1. 如果你需要生成[组件名]_[类名]_[哈希]的格式,只需要保证css文件名和对应组件文件名保持一致即可,比如组件为Component.jsx,对应的css文件命名为Component.module.css,最终生成的类名就是Component_myBtn_xxxxx。

配置参数说明

  • [name]:自动替换为当前css文件的文件名(不含后缀)
  • [local]:自动替换为你在css中写的原始类名,比如示例中的myBtn
  • [hash:base64:5]:自动生成5位长度的base64哈希值,避免不同组件的类名冲突

修改配置后重启webpack服务即可生效。

内容的提问来源于stack exchange,提问作者Mr.Kurosava

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 01:24:03