在Webpack打包时的一组Loaders中,CSS-loader就是其中的一个。CSS-loader的主要功能是分析CSS模块之间的关系,并将CSS模块中的类名和key:value格式的CSS代码转换为JavaScript对象,以供Webpack能够处理和打包它们。例如下面这个CSS代码:
.hello { color: #fff; }
CSS-loader会解析它,并将其转化为如下所示的JavaScript对象:
{ "hello": "abc123" }
其中,“hello”是这个CSS类名的名称,而“abc123”则是一个自动分配的唯一字符串,用于防止类名重复。
当webpack处理JavaScript代码时,大家可以使用import或require将CSS文件导入到JavaScript文件中。例如:
import styles from './styles.css'; console.log(styles.hello);
在被Webpack处理后,styles就变成了一个JavaScript对象,可以无缝地在JavaScript代码中使用CSS类名了。
值得注意的是,CSS-loader只是将CSS转化为JavaScript对象,而并未将其应用到页面上。要将CSS应用到页面中,还需要将其交给Webpack中的style-loader来处理。style-loader会将CSS样式注入到HTML页面的标签中,使其应用于页面中。