Webpack入门,CSS Modules

CSS Modules是近年来比较流行的一种开发模式,其理念就是把CSS模块化,让CSS也拥有模块的特点,具体如下:

  • 每个CSS文件中的样式都拥有单独的作用域,不会和外界发生命名冲突。
  • 对CSS进行依赖管理,可以通过相对路径引入CSS文件。
  • 可以通过composes轻松复用其他CSS模块

使用CSS Modules时不需要额外安装模块,只要开启css-loader中的modules配置项即可。

// webpack.config.js
module.exports = {
  ...
  module: {
    rules: [{
      test: /\.css/,
      use: [
        'style-loader', 
        {
          loader: 'css-loader',
          options: {
            modules: true,
            // localIndentName 用于指明CSS代码中的类名会如何编译。
            // [name]指代的是模块名。
            // [local]指代的是原本的选择器标识符。
            // [hash:base64:5]指代的是一个5位的hash值,这个hash值是根据模块名和标识符计算的。
            localIdentName: '[name]_[local]_[hash:base64:5]',
          }   
        }
      ]
    }]
  }
}
/* style.css */
.title {
  color: #f938ab;
}

/*
经编译后可能会变为
.style_title_1cFy6
*/

在使用过程中开发者还要注意在JavaScript中引入CSS的方式。之前直接将CSS文件引入就可以了,但使用CSS Modules时CSS文件会导出一个对象,所以开发者需要把这个对象的属性添加到HTML标签上。

// index.js
import styles from './style.css';
document.write(`<h1 class="${styles.title}">My Webpack app!</h1>`); 

原创文章,作者:ZERO,如若转载,请注明出处:https://www.edu24.cn/course/webpack-css-modules.html

Like (0)
Donate 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
ZEROZERO
Previous 2022年11月25日
Next 2023年11月23日

相关推荐

  • JAVA学习路线之夯实基础

    第一章 开发环境 JDK(Java SE Development Kit),Java标准版开发包,提供编译、运行Java程序所需的各种工具和资源,包括Java编译器、Java运行环…

    2020年1月14日
    1.5K
  • windows 11 如何安装Docker Desktop

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化…

    2022年10月27日
    443
  • 深入理解JS原型和继承

    在学习JS中的原型,原型链,继承这些知识之前,必须先了解并掌握基础知识:函数和对象的关系。 我们一直都知道,函数也是对象的一种,因为通过instanceof就可以判断出来。但是函数…

    2019年6月29日
    2.1K
  • 如何使用IDEA2020.2新建servlet工程

    最近自学java时,发现IDEA更新到2020.2版本时,在新建工程时,有了明显的改动。由于小编刚学到servlet,IDEA这一突然间的改动,导致小编不会新建servlet工程了…

    2020年8月17日
    5.8K
  • Java自学之继承

    在面向对象的设计过程中,类是基本的逻辑单位。但是对于这些基本的逻辑单位需要考虑到重用的设计问题,所以在面向对象的设计里提供有继承,并利用这一特点实现类的可重用性定义。 类继承定义 …

    2020年12月3日
    1.3K
  • CSS布局之圣杯与双飞翼布局

    所谓圣杯布局和双飞翼布局其实解决的问题是相同的,都是解决左右两栏固定宽度,中间部分自适应,其中某部分内容比其他内容高的时候,保证三者元素等高。他俩的区别就是:圣杯用padding。…

    2019年6月18日
    1.8K
  • Java自学之内部类

    内部类是一种常见的嵌套结构,利用这样的结构使得内部类可以与外部类共存,并且方便地进行私有操作的访问。 内部类基本概念 内部类(内部定义普通类、抽象类、接口的统称)是指一种嵌套的结构…

    2020年12月14日
    1.4K
  • spring4.x学习之创建工程

    断断续续学习Java有两三个月了,目前还是处于入门阶段。关于java及spring那些的设计理念方面的理论知识,不花费大量精力及时间是看不懂的(至少对于我这么一个前端转后端的初学者…

    2019年3月19日
    1.7K
  • JavaScript中call、apply及bind的深度解析

    函数原型链中的 apply,call 和 bind 方法是 JavaScript 中相当重要的概念,与 this 关键字密切相关,相当一部分人对它们的理解还是比较浅显,所谓js基础…

    2019年8月5日
    1.5K