在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 相关文章推荐
jQuery实战之品牌展示列表效果
Apr 10 Javascript
浅析js中取绝对值的2种方法
Jul 09 Javascript
在JavaScript中操作时间之getYear()方法的使用教程
Jun 11 Javascript
完善的jquery处理机制
Feb 21 Javascript
浅谈javascript中遇到的字符串对象处理
Nov 18 Javascript
ES6新特性之变量和字符串用法示例
Apr 01 Javascript
微信小程序中的swiper组件详解
Apr 14 Javascript
Angular2学习教程之ng中变更检测问题详解
May 28 Javascript
深入浅析Node.js单线程模型
Jul 10 Javascript
微信小程序媒体组件详解(视频,音乐,图片)
Sep 19 Javascript
利用js实现前后台传送Json的示例代码
Mar 29 Javascript
Angular封装表单控件及思想总结
Dec 11 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
ThinkPHP入口文件设置及相关注意事项分析
2014/12/05 PHP
php计算2个日期的差值函数分享
2015/02/02 PHP
JSON用法之将PHP数组转JS数组,JS如何接收PHP数组
2015/10/08 PHP
WordPress中用于更新伪静态规则的PHP代码实例讲解
2015/12/18 PHP
PHP对象的浅复制与深复制的实例详解
2017/10/26 PHP
PHP中递归的实现实例详解
2017/11/14 PHP
PHP实现的简单组词算法示例
2018/04/10 PHP
laravel-admin 实现在指定的相册下添加照片
2019/10/21 PHP
jQuery :nth-child前有无空格的区别分析
2011/07/11 Javascript
jquery统计用户选中的复选框的个数
2014/06/06 Javascript
jQuery基于图层模仿五星星评价功能的方法
2015/05/07 Javascript
js动态创建及移除div的方法
2015/06/03 Javascript
AngularJS中处理多个promise的方式
2016/02/02 Javascript
jQuery fancybox在ie浏览器下无法显示关闭按钮的解决办法
2016/02/19 Javascript
React.js入门实例教程之创建hello world 的5种方式
2016/05/11 Javascript
js es6系列教程 - 新的类语法实战选项卡(详解)
2017/09/02 Javascript
JavaScript中的一些隐式转换和总结(推荐)
2017/12/22 Javascript
一步步教你利用Docker设置Node.js
2018/11/20 Javascript
加快Vue项目的开发速度的方法
2018/12/12 Javascript
jquery中为什么能用$操作
2019/06/18 jQuery
vue移动端模态框(可传参)的实现
2019/11/20 Javascript
python中pycurl库的用法实例
2014/09/30 Python
Python日志模块logging简介
2015/04/13 Python
PyTorch中topk函数的用法详解
2020/01/02 Python
Spring Boot中使用IntelliJ IDEA插件EasyCode一键生成代码详细方法
2020/03/20 Python
Bose法国官网:购买耳机、扬声器、家庭影院、专业音响
2017/12/21 全球购物
荷兰在线钓鱼商店:Raven
2019/06/26 全球购物
建筑经济管理专业求职信分享
2014/01/06 职场文书
奥巴马的演讲稿
2014/05/15 职场文书
高中毕业典礼演讲稿
2014/09/09 职场文书
个人先进事迹总结
2015/02/26 职场文书
老员工辞职信范文
2015/05/12 职场文书
城镇居民医疗保险工作总结
2015/08/10 职场文书
告诉你一个秘密:富人致富的五大优点
2019/07/11 职场文书
Python天气语音播报小助手
2021/09/25 Python
Go gorilla securecookie库的安装使用详解
2022/08/14 Golang