模块化前端 css,webpack CSS 模块化配置

1.什么是css模块化

官方定义为:

CSS files in which all class names and animation names are scoped locally by default.

CSS文件中的所有类名(class names) 和动画名(animation names) 的作用域都默认为当前作用域。

自我理解: 在当前作用域下,让css 支持对象式引用,且每个属性名称全局唯一

基本使用:

import styles from "./styles.css";

element.innerHTML = `

An example heading

`;复制代码

2.css模块化好处

只应用于当前组件,不会被全局样式覆盖,解决css中全局作用域(global scope)问题

3. webpack css module配置

对css/sass文件的处理,主要应用到了css-loader(github.com/webpack-con…), 我们也将在这里做模块化配置。同是支持普通import style处理,

所以在匹配规则中,利用css/sass文件名(需要支持模块化处理的以*.module.css/scss命名,常规不需支持css模块化以*.css/scss)命名。

最终配置如下 :

{

test: /\.css$/,

oneOf: [

{

test: /\.module\.css$/,

use: [

MiniCssExtractPlugin.loader,

{

loader: "css-loader",

options: {

modules: true,

//other options

}

}

]

},

{

use: [MiniCssExtractPlugin.loader, "css-loader"]

}

]

};复制代码

关键配置在于css-loader options中modules,开启modules,设为true,以及利用oneOf匹配规则命中*.module.css/scss文件处理。

最终使用:

import './style.css'; //no css module

import styles from "./styles.module.css"; //css module

element.innerHTML = `

An example heading

`;复制代码

参考文章:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值