在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操作Xml(向服务器发送Xml,处理服务器返回的Xml)(IE下有效)
Jan 30 Javascript
仿jQuery的siblings效果的js代码
Aug 09 Javascript
使用jQuery获得内容以及内容的属性
Feb 26 Javascript
常用原生JS兼容性写法汇总
Apr 27 Javascript
JavaScript标准对象_动力节点Java学院整理
Jun 27 Javascript
vue项目中使用百度地图的方法
Jun 08 Javascript
vue 2.1.3 实时显示当前时间,每秒更新的方法
Sep 16 Javascript
详解微信图片防盗链“此图片来自微信公众平台 未经允许不得引用”的解决方案
Apr 04 Javascript
解决Vue中 父子传值 数据丢失问题
Aug 27 Javascript
js实现浏览器打印功能的示例代码
Jul 15 Javascript
vue+elementUI实现简单日历功能
Sep 24 Javascript
详解vue-cli项目在IE浏览器打开报错解决方法
Dec 10 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传输数据的代码
2007/11/13 PHP
火车头discuz6.1 完美采集的php接口文件
2009/09/13 PHP
PHP的一个基础知识 表单提交
2011/07/04 PHP
php生成shtml类用法实例
2014/12/09 PHP
php基本函数汇总
2015/07/09 PHP
php实现基于openssl的加密解密方法
2016/09/30 PHP
PHP实现的简单适配器模式示例
2017/06/22 PHP
PHP实现的回溯算法示例
2017/08/15 PHP
PHP多进程简单实例小结
2019/11/09 PHP
tp5框架基于Ajax实现列表无刷新排序功能示例
2020/02/10 PHP
javascript数组组合成字符串的脚本
2021/01/06 Javascript
动态创建的表格单元格中的事件实现代码
2008/12/30 Javascript
Jsonp 跨域的原理以及Jquery的解决方案
2010/05/18 Javascript
jquery radio 操作代码
2011/03/16 Javascript
利用AngularJs实现京东首页轮播图效果
2016/09/08 Javascript
浅谈webpack打包之后的文件过大的解决方法
2018/03/07 Javascript
微信小程序如何刷新当前界面的实现方法
2019/06/07 Javascript
node删除、复制文件或文件夹示例代码
2019/08/13 Javascript
浅谈Vue3.0之前你必须知道的TypeScript实战技巧
2019/09/11 Javascript
Python采集腾讯新闻实例
2014/07/10 Python
python实现查找excel里某一列重复数据并且剔除后打印的方法
2015/05/26 Python
Python两个内置函数 locals 和globals(学习笔记)
2016/08/28 Python
Python 绘图库 Matplotlib 入门教程
2018/04/19 Python
python 通过字符串调用对象属性或方法的实例讲解
2018/04/21 Python
Python 线程池用法简单示例
2019/10/02 Python
python next()和iter()函数原理解析
2020/02/07 Python
python 基于pygame实现俄罗斯方块
2021/03/02 Python
HTML5边玩边学(2)基础绘图实现方法
2010/09/21 HTML / CSS
护士自我介绍信
2014/01/13 职场文书
地理信息科学专业推荐信
2014/09/08 职场文书
办理信用卡工作证明
2014/09/30 职场文书
教师党员自我评议不足范文
2014/10/19 职场文书
幼儿园大班毕业评语
2014/12/31 职场文书
幼儿园教师自荐书
2015/03/06 职场文书
开会通知短信大全
2015/04/20 职场文书
毕业论文致谢怎么写
2015/05/14 职场文书