在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 相关文章推荐
javascript重复绑定事件造成的后果说明
Mar 02 Javascript
关于JavaScript中string 的replace
Apr 12 Javascript
javascript删除字符串最后一个字符
Jan 14 Javascript
jQuery构造函数init参数分析
May 13 Javascript
jQuery formValidator表单验证
Jan 07 Javascript
JavaScript操作表单实例讲解(上)
Jun 20 Javascript
WebSocket实现简单客服聊天系统
May 12 Javascript
django js 实现表格动态标序号的实例代码
Jul 12 Javascript
Node4-5静态资源服务器实战以及优化压缩文件实例内容
Aug 29 Javascript
微信小程序之左右布局的实现代码
Dec 13 Javascript
浅析JS中NEW的实现原理及重写
Feb 20 Javascript
微信小程序pinker组件使用实现自动相减日期
May 07 Javascript
在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
真正面向对象编程:PHP5.01发布
2006/10/09 PHP
PHP反射类ReflectionClass和ReflectionObject的使用方法
2013/11/13 PHP
php断点续传之文件分割合并详解
2016/12/13 PHP
php利用云片网实现短信验证码功能的示例代码
2017/11/18 PHP
Laravel框架使用monolog_mysql实现将系统日志信息保存到mysql数据库的方法
2018/08/16 PHP
解决PHP Opcache 缓存刷新、代码重载出现无法更新代码的问题
2020/08/24 PHP
Javascript &amp; DHTML 实例编程(教程)(三)初级实例篇1—上传文件控件实例
2007/06/02 Javascript
JavaScript面向对象编程
2008/03/02 Javascript
基于jquery的返回顶部效果(兼容IE6)
2011/01/17 Javascript
javascript之querySelector和querySelectorAll使用介绍
2011/12/20 Javascript
javascript中判断一个值是否在数组中并没有直接使用
2012/12/17 Javascript
Javascript实现div层渐隐效果的方法
2015/05/30 Javascript
jQuery.extend 函数及用法详细
2015/09/06 Javascript
Node.js服务器环境下使用Mock.js拦截AJAX请求的教程
2016/05/23 Javascript
AngularJS指令用法详解
2016/11/02 Javascript
jQuery向webApi提交post json数据
2017/01/16 Javascript
BootStrap selectpicker后台动态绑定数据
2017/06/01 Javascript
JS实现盒子跟着鼠标移动及键盘方向键控制盒子移动效果示例
2019/01/29 Javascript
浅谈Vue3.0新版API之composition-api入坑指南
2020/04/30 Javascript
学习python的几条建议分享
2013/02/10 Python
Python爬虫实现网页信息抓取功能示例【URL与正则模块】
2017/05/18 Python
Python连接Redis的基本配置方法
2018/09/13 Python
python控制nao机器人身体动作实例详解
2019/04/29 Python
详解Numpy数组转置的三种方法T、transpose、swapaxes
2019/05/27 Python
利用python读取YUV文件 转RGB 8bit/10bit通用
2019/12/09 Python
python 引用传递和值传递详解(实参,形参)
2020/06/05 Python
如何使用pycharm连接Databricks的步骤详解
2020/09/23 Python
优秀应届生推荐信
2013/11/09 职场文书
饲料采购员岗位职责
2013/12/19 职场文书
一帮一活动总结
2014/05/08 职场文书
旅游活动总结
2014/08/27 职场文书
2014年社区居委会主任重阳节讲话稿
2014/09/25 职场文书
2014年高三班主任工作总结
2014/12/05 职场文书
先进集体申报材料
2014/12/25 职场文书
教师旷工检讨书
2015/08/15 职场文书
SpringBoot整合MongoDB的实现步骤
2021/06/23 MongoDB