在Create React App中启用Sass和Less的方法示例


Posted in Javascript onJanuary 16, 2019

关于创建 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 插件

$ 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;

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS 统计时间
Mar 09 Javascript
一个关于javascript匿名函数的问题分析
Mar 30 Javascript
GridView中获取被点击行中的DropDownList和TextBox中的值
Jul 18 Javascript
Js实现手机发送验证码时按钮延迟操作
Jun 20 Javascript
javascript制作的简单注册模块表单验证
Apr 13 Javascript
基于jQuery实现select下拉选择可输入附源码下载
Feb 03 Javascript
JS针对Array的各种操作汇总
Nov 29 Javascript
详解Vue2.X的路由管理记录之 钩子函数(切割流水线)
May 02 Javascript
JavaScript实现三级级联特效
Nov 05 Javascript
Node.js对MongoDB进行增删改查操作的实例代码
Apr 18 Javascript
Vue2.0使用嵌套路由实现页面内容切换/公用一级菜单控制页面内容切换(推荐)
May 08 Javascript
使用vue编写h5公众号跳转小程序的实现代码
Nov 27 Vue.js
在Create React App中使用CSS Modules的方法示例
Jan 15 #Javascript
Vue 样式绑定的实现方法
Jan 15 #Javascript
在vue使用clipboard.js进行一键复制文本的实现示例
Jan 15 #Javascript
2019 年编写现代 JavaScript 代码的5个小技巧(小结)
Jan 15 #Javascript
mock.js实现模拟生成假数据功能示例
Jan 15 #Javascript
详解webpack引入第三方库的方式以及注意事项
Jan 15 #Javascript
JS高阶函数原理与用法实例分析
Jan 15 #Javascript
You might like
PHP学习之输出字符串(echo,print,printf,print_r和var_dump)
2011/04/17 PHP
对PHP新手的一些建议(PHP学习经验总结)
2014/08/20 PHP
php注册登录系统简化版
2020/12/28 PHP
深入浅析PHP无限极分类的案例教程
2016/05/09 PHP
php similar_text()函数的定义和用法
2016/05/12 PHP
Laravel框架集成UEditor编辑器的方法图文与实例详解
2019/04/17 PHP
用脚本调用样式的几种方法
2006/12/09 Javascript
Js 订制自己的AlertBox(信息提示框)
2009/01/09 Javascript
javascript getElementsByClassName实现代码
2010/10/11 Javascript
getElementByIdx_x js自定义getElementById函数
2012/01/24 Javascript
JavaScript 盒模型 尺寸深入理解
2012/12/31 Javascript
json数据处理技巧(字段带空格、增加字段、排序等等)
2013/06/14 Javascript
父元素与子iframe相互获取变量和元素对象的具体实现
2013/10/15 Javascript
javascript中clone对象详解
2014/12/03 Javascript
利用jquery给指定的table动态添加一行、删除一行的方法
2016/10/12 Javascript
ES6新特性之模块Module用法详解
2017/04/01 Javascript
React 组件转 Vue 组件的命令写法
2018/02/28 Javascript
详解JSON和JSONP劫持以及解决方法
2019/03/08 Javascript
简单介绍Python中的decode()方法的使用
2015/05/18 Python
Python中 传递值 和 传递引用 的区别解析
2018/02/22 Python
Python基于递归算法实现的汉诺塔与Fibonacci数列示例
2018/04/18 Python
python并发编程多进程之守护进程原理解析
2019/08/20 Python
Python 程序员必须掌握的日志记录
2020/08/17 Python
python drf各类组件的用法和作用
2021/01/12 Python
Python从MySQL数据库中面抽取试题,生成试卷
2021/01/14 Python
马来西亚航空官方网站:Malaysia Airlines
2017/07/28 全球购物
POS解决方案:MUNBYN(热敏打印机、条形码扫描仪)
2020/06/09 全球购物
办公室驾驶员岗位职责
2013/11/15 职场文书
自我鉴定书面格式
2014/01/13 职场文书
写给学生的新学期寄语
2014/01/18 职场文书
个人债务授权委托书范本
2014/10/05 职场文书
甲乙双方合作协议书
2014/10/13 职场文书
2015年创先争优活动总结
2015/03/27 职场文书
教师纪律作风整顿心得体会
2016/01/23 职场文书
感恩信:写给爸爸妈妈的一封感谢信
2019/09/12 职场文书
通过shell脚本对mysql的增删改查及my.cnf的配置
2021/07/07 MySQL