【问题标题】:Class names via CSS modules are generated in a strange way通过 CSS 模块生成的类名以一种奇怪的方式生成
【发布时间】:2021-11-01 16:44:35
【问题描述】:

我通过 webpack配置了CSS-modules,结果类名看起来不对。

感觉 webpack 没有响应它们。虽然它应该看起来像这样: class="Input-input_ytoew" 但您可以自己查看结果。

webpack
----------
module.exports = {
  module: {
    rules: [
      {
        test: /\.s?css$/,
        use: [
          "style-loader",
          {
            loader: "css-loader",
            options: {
              sourceMap: true,
              importLoaders: 1,
              modules: true,
            },
          },
        ],
        include: /\.module\.scss$/,
      },
      {
        test: /\.s?css$/,
        use: ["style-loader", "css-loader"],
        exclude: /\.module\.scss$/,
      },
    ],
  },
};


Input.stx
----------
import React from "react";

import s from "./Input.module.scss";

export const Input = ({ value }: any) => {
  return (
    <>
      <input className={s.input} type="text" value={value} />
    </>
  );
};

【问题讨论】:

    标签: javascript reactjs webpack sass


    【解决方案1】:

    localIdentName of css-loader。该属性负责生成类名。

    我通常会选择:

    {
        loader: 'css-loader',
        options: {
            modules: {
                localIdentName:'[name]__[local]--[hash:base64:5]',
            },
        },
    },
    

    【讨论】:

    • Tnx) 你知道吗,我怎样才能在类名Input-module__input--yBU80 中排除部分 .module.
    • @MichaelPodlevskykh 因为你的 CSS 文件名是 *.module.css,对吧?不幸的是,[name] 变量使用完整的文件名
    • @ItayGanorI 我找到了一些项目,我在屏幕截图上看到了这个细节。也许这可能linklink
    • @MichaelPodlevskykh 分享链接,我去调查
    • @ItayGanorI link
    猜你喜欢
    • 2014-01-03
    • 1970-01-01
    • 1970-01-01
    • 2020-11-13
    • 2021-04-08
    • 2023-04-10
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    相关资源
    最近更新 更多