本文介绍了如何在 Create React App 脚手架中启用 Sass 和 Less
前言
关于创建 create-react-app 项目请查看: create-react-app 的安装与创建
关于在 less 和 sass 如何在 create-react-app 启用 CSS Modules,请查看我的上一篇文章:在 Create React App 中使用 CSS Modules
启用 Sass 语法编写 CSS
create-react-app 脚手架中已经添加了 sass-loader 的支持,所以只需要安装 node-sass 插件即可
安装 node-sass 插件
1 | $ npm install node-sass --save |
用法:
编写 sass 文件:App.scss
1 | .App { |
在 js 文件中直接使用:改写 App.js 文件
1 | import React, { Component } from 'react'; |
在浏览器中查看效果
运行项目,此时在浏览器中即可查看到 logo 图片在缓慢转动
启用 Less 语法编写 CSS
由于 create-react-app 脚手架中并没有配置关于 less 文件的解析,所以我们需要自己进行配置。需要安装的插件
less
,less-loader
。
添加 Less 相关配置
在命令行运行
npm run eject
命令此命令会将脚手架中隐藏的配置都展示出来,此过程不可逆
运行完成之后,打开 config 目录下的 webpack.config.js 文件,找到
// style files regexes
注释位置,仿照其解析 sass 的规则,在下面添加两行代码1
2
3// 添加 less 解析规则
const lessRegex = /\.less$/;
const lessModuleRegex = /\.module\.less$/;找到 rules 属性配置,在其中添加 less 解析配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25// Less 解析配置
{
test: lessRegex,
exclude: lessModuleRegex,
use: getStyleLoaders(
{
importLoaders: 2,
sourceMap: isEnvProduction && shouldUseSourceMap,
},
'less-loader'
),
sideEffects: true,
},
{
test: lessModuleRegex,
use: getStyleLoaders(
{
importLoaders: 2,
sourceMap: isEnvProduction && shouldUseSourceMap,
modules: true,
getLocalIdent: getCSSModuleLocalIdent,
},
'less-loader'
)
}此时配置完成,安装 less 和 less-loader 插件即可
1
$ npm install less less-loader --save
用法
以下代码根据上面 sass 用法中的文件进行修改
编写 less 文件:App.less
1 | .App { |
在 js 文件中直接使用:改写 App.js 文件
1 | import React, { Component } from 'react'; |
在浏览器中查看效果
运行项目,此时在浏览器中即可查看到 logo 图片在缓慢转动