this is header
npm i -D cssidreplace-loader
this is header
讲一下我司的另一种css模块化解决方案,给每个模块自定义一个css key,比如说customHeader
,在该模块的所有css样式签名都套上.customHeader
e.g.这是模块html文件
this is header css模块化解决方案
以下是该模块css代码
webpack打包的时候给该模块css key添加一个随机唯一的数值生成最终的cssId,e.g.customHeader-123456,生成最终文件代码如下:
this is header css模块化解决方案
用法
cssidreplace-loader的作用就是在webpack打包时把css代码中的css key替换成css Id(即是把customHeader替换成customHeader-123456)。
可配置参数有两个:regex
和sub
,regex
指待替换css key,sub
指css Id,在webpack配置文件中代码如下:
test: /\.css$/ use: loader: "style-loader" loader: "css-loader" loader: 'cssidreplace-loader' options: regex: 'customHeader' sub: 'customHeader-123456'
每个模块的css Id都是不同的,咱们可以通过通过动态配置webpack给对应的模块替换上相应的css Id
// 注意:默认模块名称跟模块文件夹名称是一致的// var modulesMap = [ // 举例,假设这个是所有模块的索引// {// name: 'header', // 模块名称// cssKey: 'customHeader',// cssId: 'customHeader-123456'// },// {// name: 'footer',// cssKey: 'customFooter',// cssId: 'customFooter-323122'// },// ];const webpack = ;const webpack_config = ;const webpackDevServer = ;modulesMap;//webpack dev serverconst compiler = ;compiler stats: colors: true chunks: false noInfo: false proxy: '*': target: 'http://localhost:3000' ;