【问题标题】:How to disable css module file suffix ".module" in Next.js config?如何在 Next.js 配置中禁用 css 模块文件后缀“.module”?
【发布时间】:2021-09-08 19:14:06
【问题描述】:

我在 100% 的情况下都使用 css 模块,那为什么每次都在文件名中写上 .module 这个词呢?如果我手动配置 webpack 我会更改这个后缀,但是在 next.js 中我该怎么做呢?

【问题讨论】:

    标签: webpack next.js css-modules


    【解决方案1】:

    我遇到了同样的问题,几个小时后,我找到了解决方案。如果你想在 100% 的情况下使用 css-modules,你必须在 next.config.js 中编辑 webpack 配置:

    我做的是通过这段代码:

    const isTwoRegexEqual = (x, y) => {
       return (
          x instanceof RegExp &&
          y instanceof RegExp &&
          x.source === y.source &&
          x.global === y.global &&
          x.ignoreCase === y.ignoreCase &&
          x.multiline === y.multiline
       );
    }
    
    const getConfigToAcceptSassFilesWithoutModuleSuffix = (config) => {
       return {
          ...config,
          module: {
             ...config.module,
             rules: config.module.rules.map((rule) => {
                if (rule.oneOf) {
                   return {
                      ...rule,
                      oneOf: rule.oneOf.map((loaderSettings) => {
                         if (
                            (!Array.isArray(loaderSettings.test) && isTwoRegexEqual(loaderSettings.test, /\.module\.(scss|sass)$/))
                            || (Array.isArray(loaderSettings.test) && loaderSettings.test.filter((test) => isTwoRegexEqual(test, /(?<!\.module)\.(scss|sass)$/ )).length > 0)
                         ) {
                            return {
                               ...loaderSettings,
                               test: /\.(scss|sass)$/,
                            }
                         }
    
                         return loaderSettings;
                      })
                   }
                }
                return rule;
             })
          }
       }
    };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-29
      • 2021-10-10
      • 1970-01-01
      • 1970-01-01
      • 2019-12-01
      • 2021-03-19
      • 2018-01-12
      • 2019-11-29
      相关资源
      最近更新 更多