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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
ZEROZERO
上一篇 2022年11月25日
下一篇 2023年11月23日

相关推荐

  • px、em和rem实战经验

    在自适应布局或者移动端网页开发时,我们经常会用到em和rem两个长度单位。接下来我们讨论一下这两个单位和px之间的区别,以及他们的使用场景等。 px px,像素(计算机屏幕上的一个…

    2018年9月11日
    2.2K
  • Spring Tools学习之JAVA开发环境搭建【windows 10】

    一直以来都想学习JAVA,但是苦于找不到门路,网上学习资料要不看不懂,要不需要金钱。 终于,迫于生活与年龄的压力,下定决心,学习JAVA。 写下此文档,记录一下自己学习JAVA之路…

    2018年12月6日
    3.1K
  • Java自学之泛型

    在Java语言中,为了方便接收参数类型的统一,提供了核心类Object,利用此类对象可以接收所有类型的数据(包括基本数据类型和引用数据类型)。但是由于其所描述的数据范围过大,所以在…

    2020年12月8日
    1.4K
  • spring boot练习篇之用户登录系统【接口篇】

    写在前面 抛弃JSP,只做纯粹的前后端分离项目。 作为一个资深前端工作者,想要转JavaWeb开发,无论是书籍,还是网上视频、资料,竟然没有一篇能清楚明白地讲解怎样搭建一个前后端分…

    2021年5月25日
    1.8K
  • MyBatis之MyBatis-Generator标签配置及意义

    DTD 标签 <generatorConfiguration/>: 根标签,所有的配置都必须在该标签内配置;没有属性 <properties/>: 主要引用外部的pro…

    2019年12月27日
    2.0K
  • Webpack入门,模块打包之ES6 Module

    JavaScript之父Brendan Eich在最初设计这门语言时,并没有包含模块的概念。基于越来越多的工程需要,为了使用模块化进行开发,JavaScript社区涌现出了多种模块…

    2022年11月11日
    675
  • 日常开发 26 个常见的 JavaScript 代码优化方案

    1、NULL、Undefined、”【空】检查 我们在创建新变量赋予一个存在的变量值的时候,并不希望赋予null或undefined,我们可以采用以下简洁的赋值方式。 …

    2021年2月22日
    1.4K
  • windows 11 如何安装Docker Desktop

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

    2022年10月27日
    596
  • JavaScript 事件委托详解

    基本概念 事件委托,通俗地来讲,就是把一个元素响应事件(click、keydown……)的函数委托到另一个元素; 一般来讲,会把一个或者一组元素的事件委托到…

    2021年3月8日
    1.2K
  • Webpack入门,模块打包之CommonJS简介

    CommonJS 说到前端的模块,不得不讲一下CommonJS。CommonJS是由JavaScript社区于2009年提出的包含模块、文件、IO、控制台在内的一系列标准。Node…

    2022年11月10日
    658