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

React/NextJS中如何移除模块化SCSS的类名文件前缀?

解决Next.js模块化SCSS自动添加文件名前缀的问题

Next.js中CSS模块化的类名生成逻辑由css-loader的localIdentName参数控制,默认规则会包含文件名前缀。要去掉这个前缀,只需自定义webpack配置修改该参数即可:

  • 在项目根目录创建或编辑next.config.js文件,添加如下配置:
/** @type {import('next').NextConfig} */
const nextConfig = {
  webpack: (config) => {
    // 遍历所有CSS处理规则,定位模块化SCSS的配置
    config.module.rules.forEach(rule => {
      if (rule.oneOf) {
        rule.oneOf.forEach(oneOfRule => {
          if (oneOfRule.test?.test('.scss') && oneOfRule.use) {
            // 修改css-loader的类名生成规则
            oneOfRule.use.forEach(loader => {
              if (loader.loader?.includes('css-loader') && loader.options.modules) {
                loader.options.modules.localIdentName = '[local]_[hash:base64:5]';
              }
            });
          }
        });
      }
    });
    return config;
  },
};

module.exports = nextConfig;
  • 保存配置后,重启Next.js开发服务器。

修改完成后,DOM中的类名将从splash_splashContent_3R9Lp变为splashContent_3R9Lp,仅保留原类名和哈希后缀,去掉了文件名前缀。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 00:32:35