在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 验证表单(form)中多选框(checkbox)值
Sep 08 Javascript
jQuery UI-Draggable 参数集合
Jan 10 Javascript
自己实现string的substring方法 人民币小写转大写,数字反转,正则优化
Sep 02 Javascript
js检验密码强度(低中高)附图
Jun 05 Javascript
原生js实现复制对象、扩展对象 类似jquery中的extend()方法
Aug 30 Javascript
jQuery学习笔记之2个小技巧
Jan 19 Javascript
微信小程序 删除项目工程实现步骤
Nov 10 Javascript
JS两种类型的表单提交方法实例分析
Nov 28 Javascript
Bootstrap模态框插件使用详解
May 11 Javascript
理解javascript async的用法
Aug 22 Javascript
关于vue面试题汇总
Mar 20 Javascript
7个你应该知道的JS原生错误类型
Apr 29 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
评分9.0以上的动画电影,剧情除了经典还很燃
2020/03/04 日漫
用php+javascript实现二级级联菜单的制作
2008/05/06 PHP
探讨Smarty中如何获取数组的长度以及smarty调用php函数的详解
2013/06/20 PHP
PHP中使用memcache存储session的三种配置方法
2014/04/05 PHP
PHP生成图片缩略图类示例
2017/01/12 PHP
PHP登录验证功能示例【用户名、密码、验证码、数据库、已登陆验证、自动登录和注销登录等】
2019/02/25 PHP
jQuery 树形结构的选择器
2010/02/15 Javascript
jQuery拖拽 &amp; 弹出层 介绍与示例
2013/12/27 Javascript
从零学jquery之如何使用回调函数
2014/05/16 Javascript
jquery 中的each()跳出循环的语句
2014/05/23 Javascript
我的Node.js学习之路(四)--单元测试
2014/07/06 Javascript
详解js闭包
2014/09/02 Javascript
14个有用的Jquery技巧分享
2015/01/08 Javascript
基于jquery实现下拉框美化特效
2016/02/02 Javascript
讲解JavaScript的Backbone.js框架的MVC结构设计理念
2016/02/14 Javascript
jQuery图片轮播插件——前端开发必看
2016/05/31 Javascript
你知道setTimeout是如何运行的吗?
2016/08/16 Javascript
Ext JS 实现建议词模糊动态搜索功能
2017/05/13 Javascript
深究AngularJS——ng-checked(回写:带真实案例代码)
2017/06/13 Javascript
纯js实现图片匀速淡入淡出效果
2017/08/22 Javascript
bing Map 在vue项目中的使用详解
2018/04/09 Javascript
nodejs读取本地中文json文件出现乱码解决方法
2018/10/10 NodeJs
Vue2.0实现简单分页及跳转效果
2019/07/29 Javascript
[48:44]2014 DOTA2国际邀请赛中国区预选赛5.21 TongFu VS HGT
2014/05/22 DOTA
Python中列表元素转为数字的方法分析
2016/06/14 Python
Python 编程速成(推荐)
2019/04/15 Python
css3 pointer-events 介绍详解
2017/09/18 HTML / CSS
照片礼物和装饰:MyPhoto
2019/11/02 全球购物
红色故事演讲稿
2014/05/22 职场文书
2015年污水处理厂工作总结
2015/05/26 职场文书
微信搭讪开场白
2015/05/28 职场文书
幼儿园元旦主持词
2015/07/06 职场文书
缅怀先烈主题班会
2015/08/14 职场文书
2016年社区党支部公开承诺书
2016/03/25 职场文书
Django如何与Ajax交互
2021/04/29 Python
手把手教你从零开始react+antd搭建项目
2021/06/03 Javascript