在我们使用create-react-app来快速搭建脚手架时,我们发现生成的项目中并没有明显的暴露出webpack相关配置,那么我们要使用scss/less该如何进行配置呢?
本文采用react版本号:^16.13.1
create-react-app版本号:3.4.1
一、配置scss
配置scss最简单,只需要安装node-sass和sass-loader即可(why?后面有说明):npm install --save node-sass sass-loader安装完成之后,将相应的css文件后缀改为.scss即可

我们发现,项目正常执行;如果没有安装node-sass与sass-loader,将css文件的后缀改为.scss后,项目会报错,提示安装node-sass。
二、配置less
从配置sass来看,我们是不是只需要安装一下less-loader就可以了呢?
答案:不可以。
我们尝试发现将css文件后缀名改为.less,发现项目正常运行,页面样式异常,检查样式发现less文件中的样式未加载出来;

步骤1,先寻找webpack配置文件(两种方法)
方法一、通过执行如下命令将webpack配置文件暴露出来:
npm run eject
执行成功后我们会发现,package.json内容(含npm run xxx的相应命令配置)发生了变化,依赖包进行了重置,目录中生成了config和scripts两个文件

注意:如果没有修改本地任何文件及内容,执行npm run eject则正常(成功以后此命令被删除);如果修改了本地文件及内容后执行npm run eject,出现报错
即要在执行eject之前先执行如下命令:
git init
git add .
git commit -m 'xxx'展开config文件夹,我们可以找到webpack配置文件,如下图所示:

方法二、我们不用通过npm run eject,直接在此目录node_modules/react-scripts/config下找到webpack配置文件

注意:如果执行了eject后,那么node_modules是会被重置的,就不会再有react-scripts这个依赖包(即react-scripts依赖包替换为config和scripts文件暴露出来)。
通过对照两种方式下的webpack.config.js文件内容是相同的;
步骤2,修改webpack配置
通过查看代码,我们发现webpack.config.js对style的处理是内置了(scss|sass)相应的处理,难怪在使用sass时,只需要下载node-sass和sass-loader即可;

同理,我们加上相应的less配置即可,添加代码(3处)如下:



其实就是复制一下sass相关配置代码,并将其修改为less相关配置即可;
接下来,只需要安装一下less-loader即可:
npm install --save less-loader安装完成之后,我们将css文件后缀名都改为.less,看看效果是否与css展示一样:


大功告成,less加载出来与css结果一样。
三、antd按需加载配置
方法一:npm run eject后在package.json中配置如下:
安装插件:babel-plugin-import后配置如下
"babel": { "presets": [ "react-app" ], "plugins": [ ["import", { "libraryName": "antd", "libraryDirectory": "es", "style": "css" }] ] }