在Create React App中启用Sass和Less的方法示例
程序员文章站
2022-06-29 14:26:20
关于创建 create-react-app 项目请查看: 。
关于在 less 和 sass 如何在 create-react-app 启用 css modules,请查...
关于创建 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 插件
$ npm install node-sass --save # 或者 # $ yarn add node-sass
用法:
编写 sass 文件:app.scss
.app { text-align: center; &-logo { animation: app-logo-spin infinite 20s linear; height: 40vmin; } }
在 js 文件中直接使用:改写 app.js 文件
import react, { component } from 'react'; import logo from './logo.svg'; import './app.scss'; class app extends component { render() { return ( <div classname="app"> <header classname="app-header"> <img src={logo} classname="app-logo" alt="logo" /> </header> </div> ); } } export default app;
在浏览器中查看效果
运行项目,此时在浏览器中即可查看到 logo 图片在缓慢转动。
启用 less 语法编写 css
由于 create-react-app 脚手架中并没有配置关于 less 文件的解析,所以我们需要自己进行配置。需要安装的插件 less , less-loader 。
添加 less 相关配置
在命令行运行 npm run eject 命令
此命令会将脚手架中隐藏的配置都展示出来,此过程不可逆
运行完成之后,打开 config 目录下的 webpack.config.js 文件,找到 // style files regexes 注释位置,仿照其解析 sass 的规则,在下面添加两行代码
// 添加 less 解析规则 const lessregex = /\.less$/; const lessmoduleregex = /\.module\.less$/;
找到 rules 属性配置,在其中添加 less 解析配置
// 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 插件即可
$ npm install less less-loader --save
用法
以下代码根据上面 sass 用法中的文件进行修改
编写 less 文件:app.less
.app { text-align: center; &-logo { animation: app-logo-spin infinite 20s linear; height: 40vmin; } }
在 js 文件中直接使用:改写 app.js 文件
import react, { component } from 'react'; import logo from './logo.svg'; import './app.less'; class app extends component { render() { return ( <div classname="app"> <header classname="app-header"> <img src={logo} classname="app-logo" alt="logo" /> </header> </div> ); } } export default app;
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。