在做webpack的DEMO时,打包CSS,为什么类名会变乱码?

发布于 2022-09-04 22:52:29 字数 674 浏览 13 评论 0

CSS里,如果是标签选择器,是正常的,图片描述

图片描述

如果是类名,就会变乱码
图片描述图片描述

配置文件

图片描述

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

吃→可爱长大的 2022-09-11 22:52:29

这个是将你的class名变成hash值,这样可以防止你的样式名重名了。获取当然是获取不到的,因为webpack是将你的源码打包了,然后你设置了之后,他就变成hash值,你通过获取原先class名想找到dom是不可能的。两种方式,一种是不变成hash值,另外一种是使用变成hash值后再去找dom。如变成hash值后是w5ds6d3213_245ad,那么你就通过document.getElementByClassName("w5ds6d3213_245ad").这样就能获得了。

女皇必胜 2022-09-11 22:52:29

这不是乱码,这是css modules

clipboard.png

阿楠 2022-09-11 22:52:29

官方文档中:“文档”-“LOADER”下的“css-loader”中说到:“您还可以通过自定义 getLocalIdent 函数来指定绝对路径,以根据不同的模式(schema)生成类名。这需要 webpack >= 2.2.1(options 对象支持传入函数)。”

 {
    test: /\.css$/,
    use: ExtractTextPlugin.extract({
        fallback: "style-loader",
        use: [
            {
                loader: "style-loader"
            },{
                loader: "css-loader",
                options: {
                    modules: true,
                    localIdentName: '[path][name]__[local]--[hash:base64:5]',
                    getLocalIdent: (context, localIdentName, localName, options) => {
                                return localName
                            }
                        }
            }, {
                loader: "postcss-loader"
                }]
                })}

此设置可以保证类名和本地设置类名相同。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文