webpack-css-loader模块化

默认情况下通过 import "./xxx.css" 导入的样式是全局的样式,也就是只要被导入, 在其它文件中也可以使用,如果想要导入的CSS文件只在导入的文件中有效, 那么就需要开启CSS的模块化,开启也就是修改 webpack 核心配置文件,修改地方和内容如下所示:

options: {
    modules: true
}

然后在导入的地方通过 import xxx from "./xxx.css" 导入。

import cssModule from "./index.css"

然后在使用的地方通过 xxx.className 的方式使用即可。

如果不使用模块化的话 ,那么你的样式就会全局生效,先来看看不用的情况下吧,新建一个 custom.js 内容如下

import icon from "./index.jpg";

function addImage() {
    let oImg = document.createElement("img");
    oImg.src = icon;
    oImg.setAttribute("class", "size");
    document.body.appendChild(oImg);
}

export {addImage};

然后再 index.js 中导入之后再调用,custom.js 中的方法,如下:

那么开启之后的效果是怎样的呢,也就是开启CSS的模块化,按照如上的方式进行配置即可。

发现还是一样的效果,需要修改一下设置属性的写法,修改 index.js 如下所示,那么这里只是修改 index.js 中的样式,custom.js 中的样式就是默认的样式:

oImg.setAttribute("class", cssModule.size);

posted @ 2020-12-27 21:54  BNTang  阅读(256)  评论(0编辑  收藏  举报