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 ...
随机推荐
- Tensorflow细节-P196-输入数据处理框架
要点 1.filename_queue = tf.train.string_input_producer(files, shuffle=False)表示创建一个队列来维护列表 2.min_after_ ...
- Linux环境下面安装Perl环境
1.下载安装 wget http://www.cpan.org/src/5.0/perl-5.26.1.tar.gz tar zxvf perl-5.26.1.tar.gz cd perl-5.26. ...
- printf的使用和test的使用
1.printf的使用 printf的转义序列 序列 说明 \a 警告字符,通常为ASCII的BEL字符 \b 后退 \c 抑制(不显示)输出结果中任何结尾的换行字符(只在%b格式指示符控制下的参数字 ...
- HDU-盐水的故事
http://acm.hdu.edu.cn/showproblem.php?pid=1408 这是一道高精度问题: 在自己错了数十遍之后找到了不少规律: 首先是Output limit exceede ...
- 《挑战30天C++入门极限》新手入门:C++下的引用类型
新手入门:C++下的引用类型 引用类型也称别名,它是个很有趣的东西.在c++ 下你可以把它看作是另外的一种指针,通过引用类型我们同样也可以间接的操作对象,引用类型主要是用在函数的形式参数上,通 ...
- fuck-KUNLUN昆仑ECRS会员管理系统
写代码要认证一点,多一点测试, navigator.appName == 'Netscape'这么垃圾的代码都能写出来,握草. 怕时间就了就忘记怎么搞的了,MD经过前端各种断点,找到了这个垃圾玩意儿. ...
- ZR#985
ZR#985 解法: 可以先假设每个区间中所有颜色都出现,然后减掉多算的答案.对每种颜色记录它出现的位置,则相邻两个位置间的所有区间都要减去,时间复杂度 $ O(n) $ . 其实可以理解为加法原理的 ...
- Hadoop hadoop 机架感知配置
机架感知脚本 使用python3编写机架感知脚本,报存到topology.py,给予执行权限 import sys import os DEFAULT_RACK="/default-rack ...
- vim配图
https://blog.csdn.net/zhlh_xt/article/details/52458672 https://www.jianshu.com/p/75cde8a80fd7 https: ...
- 怎么把分化成元,并且保留两位小数,用vue来做
<el-table-column prop="amount" label="申请提现金额" width="120" align=&qu ...