class类名在webpack项目中的两种引用方式
一、问题描述
在项目工程中,我们通常既用到css module,也用到普通的less文件引用方式,代码及webpack配置如下,运行时,发现只有css module起作用,如何让两者都起作用呢?
// exp1.less
.box {
display: flex;
justify-content: center;
align-items: center;
width: 100%;
height: 100%;
}
// exp2.less
.pf {
color: aquamarine;
font-size: 20px;
}
// jsx文件
import './exp1.less'; //普通用法
import styles from './exp2.less'; //css module
<div className='box'>
<p className={styles.pf}>测试cssmodule语法</p>
</div>
// webpack配置文件。
{
test: /\.less$/,
exclude:'node_modules',
use: [
MiniCssExtractPlugin.loader,
{
loader: 'css-loader',
options: {
minimize: false,
modules: true,
localIdentName: '[name]_[local]_[hash:base64:5]'
}
},
'less-loader'
]
}
二、问题分析
这是由于webpack加载器配置不对引起的。
三、解决方案
1、都写成less文件,但是要放在不同目录,并且修改webpack配置。
// exp1.less
.box {
display: flex;
justify-content: center;
align-items: center;
width: 100%;
height: 100%;
}
// exp2.less
.pf {
color: aquamarine;
font-size: 20px;
}
//jsx文件
import './exp1.less'; //普通用法
import styles from './cml/exp2.less'; //css module
<div className='box'>
<p className={styles.pf}>测试cssmodule语法</p>
</div>
// webpack配置文件,cml为目录名,统一放需要css module的less文件。
{
test: /\.less$/,
exclude:/(node_modules|cml)/,
use: [
MiniCssExtractPlugin.loader,
{
loader: 'css-loader'
},
'less-loader'
]
},
{
test: /\.less$/,
exclude:/node_modules/,
include:/cml/,
use: [
MiniCssExtractPlugin.loader,
{
loader: 'css-loader',
options: {
minimize: false,
modules: true,
localIdentName: '[name]_[local]_[hash:base64:5]'
}
},
'less-loader'
]
},
2、写成css文件和less文件,放在同一目录。(推荐)
// exp1.css
.box {
display: flex;
justify-content: center;
align-items: center;
width: 100%;
height: 100%;
}
// exp2.less
.pf {
color: aquamarine;
font-size: 20px;
}
// jsx文件
import './exp1.css'; // 普通用法
import styles from './exp2.less'; //css module
<div className='box'>
<p className={styles.pf}>测试cssmodule语法</p>
</div>
// webpack配置文件。
{
test: /\.less$/,
exclude:'node_modules',
use: [
MiniCssExtractPlugin.loader,
{
loader: 'css-loader',
options: {
minimize: false,
modules: true,
localIdentName: '[name]_[local]_[hash:base64:5]'
}
},
'less-loader'
]
}
3、在团队中统一代码风格
尤其在同一个项目中,推荐使用同一种类名引用方式,要么都用普通方式。
// exp1.less
.box {
display: flex;
justify-content: center;
align-items: center;
width: 100%;
height: 100%;
}
// exp2.less
.pf {
color: aquamarine;
font-size: 20px;
}
// jsx文件
import './exp1.less'; //普通用法
import './exp2.less'; //普通用法
<div className='box'>
<p className='pf'>测试cssmodule语法</p>
</div>
// webpack配置文件
{
test: /\.less$/,
exclude:/node_modules/,
use: [
MiniCssExtractPlugin.loader,
{
loader: 'css-loader'
},
'less-loader'
]
}
4、在团队中统一代码风格(推荐)
尤其在同一个项目中,推荐使用同一种类名引用方式,都用css module。
// exp1.less
.box {
display: flex;
justify-content: center;
align-items: center;
width: 100%;
height: 100%;
}
// exp2.less
.pf {
color: aquamarine;
font-size: 20px;
}
// jsx文件
import style1 from './exp1.less'; //css module
import styles from './exp2.less'; //css module
<div className={style1.box}>
<p className={styles.pf}>测试cssmodule语法</p>
</div>
// webpack配置文件
{
test: /\.less$/,
exclude:/node_modules/,
use: [
MiniCssExtractPlugin.loader,
{
loader: 'css-loader',
options: {
minimize: false,
modules: true,
localIdentName: '[name]_[local]_[hash:base64:5]'
}
},
'less-loader'
]
},
class类名在webpack项目中的两种引用方式的更多相关文章
- Javaweb学习笔记——(六)——————xml中jaxp两种解析方式和dom4j运用
1.xml的scheam约束 dtd的语法:<!ElEMENT 元素名称 约束> **schema符合xml的语法,xml语句 **一个xml中可以有多个schema,多个schema使用 ...
- javascript中对象两种创建方式
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 测开之路一百零五:bootstrap的两种引用方式
一:下载到本地引用: 3.3.7版本:https://getbootstrap.com/docs/3.3/getting-started/#download 下载后解压到本地项目中引用 第二种,cdn ...
- css的两种引用方式 link和@import
学习web开发的最大乐趣就是不断的发现自己以前不曾见过的东西,这些东西对于我来说是那么的新鲜有趣. 比如说今天偶尔研究别人的网站,就发现了有趣的东东. 当点开此网页的css时(这个css文件命名方式就 ...
- Java中的四种引用方式
无论是通过引用计数算法判断对象的引用数量,还是通过可达性分析算法判断对象的引用链是否可达,判定对象是否存活都与"引用"有关.在Java语言中,将引用又分为强引用.软引用.弱引用 ...
- String中的两种实例化方式的区别
直接赋值:(String str = "字符串");只会开辟一块堆内存空间,并且会自动保存在对象池中以供下次重复使用. 构造方法:(String str = new String ...
- iOS中的两种搜索方式UISearchDisplayController和UISearchController
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 以前iOS的搜索一般都使用UISearchDisplayCon ...
- web 开发之js---ajax 中的两种提交方式ajax post 和 ajax get 实例
()post http://04101334.iteye.com/blog/637695/ ()get function serializeElement(element) { var method ...
- Hibeernate中的两种分页方式
1. return getHibernateTemplate().executeFind(new HibernateCallback() { public Object doInHibernate(S ...
随机推荐
- Ubuntu18.04下安装Sublime Text3并解决不能输入中文
Ubuntu18.04下安装Sublime Text3并解决不能输入中文! 废话不多说,直接按顺序执行下面命令开始安装! wget -qO - https://download.sublimetext ...
- Kubernetes 学习13 kubernetes pv pvc configmap 和secret
一.概述 1.我们在pvc申请的时候未必就有现成的pv能正好符合这个pvc在申请中指定的条件,毕竟上一次的成功是我们有意设定了有一些满足有一些不满足的前提下我们成功创建了一个pvc并且被pod绑定所使 ...
- SaltStack 在 Windows 上的操作基础
SaltStack 在 windows上的操作基础 1.删除文件: salt '172.16.3.11' file.remove 'D:\downup\111.msu' 2.删除文件夹 salt '1 ...
- Vim颜色配置
最近迷上了Vim 主要原因是可以装逼 不过话说它自带的配色里面也就只有一个evening能勉强满足我的审美 于是我花了大概几天的时间翻了些百度贴吧,或者自己手动改属性后面的配色来实验这个属性到底对应哪 ...
- 洛谷P2324 [SCOI2005] 骑士精神
题目 方法很多,最经典的是用搜索的算法,也就是\(IDA*\)算法搜索. \(IDA*\)算法是每次规定一个搜索深度,并在搜索的时候限制该搜索深度,从而达到把深搜的优点和广搜的优点结合起来优化时间的一 ...
- Android Studio 和 SDK 下载、安装和环境变量配置
转Android Studio 和 SDK 下载.安装和环境变量配置https://blog.csdn.net/hahahhahahahha123456/article/details/8065135 ...
- vue列表拖拽排序功能实现
1.实现目标:目标是输入一个数组,生成一个列表:通过拖拽排序,拖拽结束后输出一个经过排序的数组. 2.实现思路: 2.1是使用HTML5的drag功能来实现,每次拖拽时直接操作Dom节点排序,拖拽结束 ...
- freemark 异常
现象: 前几天跟前端联调,freemark报异常如下: For "#if" condition: Expected a boolean, but this has evaluate ...
- 三大框架 之 Struts2
目录 Struts2 Struts2简介 Struts2框架的作用 常见web层的框架 web框架特点 Struts2基本使用 Struts2执行流程 Struts2配置 struts2的加载顺序 P ...
- Java逻辑分页代码
前台jsp代码如下: <%@ page language="java" contentType="text/html; charset=UTF-8" pa ...