在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 相关文章推荐
CheckBox 如何实现全选?
Jun 23 Javascript
可以把编码转换成 gb2312编码lib.UTF8toGB2312.js
Aug 21 Javascript
Javascript base64编码实现代码
Dec 02 Javascript
js replace替换所有匹配的字符串
Feb 13 Javascript
浅谈js 闭包引起的内存泄露问题
Jun 22 Javascript
jquery模拟实现鼠标指针停止运动事件
Jan 12 Javascript
Vue.js报错Failed to resolve filter问题的解决方法
May 25 Javascript
如何制作幻灯片(代码分享)
Jan 06 Javascript
vue.js单页面应用实例的简单实现
Apr 10 Javascript
基于LayUI分页和LayUI laypage分页的使用示例
Aug 02 Javascript
VUE实现图片验证码功能
Nov 18 Javascript
vue+animation实现翻页动画
Jun 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
提问的智慧
2006/10/09 PHP
PHP弹出提示框并跳转到新页面即重定向到新页面
2014/01/24 PHP
PHP封装的字符串加密解密函数
2015/12/18 PHP
PHP自定义图片缩放函数实现等比例不失真缩放的方法
2016/08/19 PHP
PHP实现加密文本文件并限制特定页面的存取的效果
2016/10/21 PHP
js 字符串操作函数
2009/07/25 Javascript
Eclipse配置Javascript开发环境图文教程
2015/01/29 Javascript
在JavaScript中正确引用bind方法的应用
2015/05/11 Javascript
JavaScript操作选择对象的简单实例
2016/05/16 Javascript
js中获取 table节点各tr及td的内容简单实例
2016/10/14 Javascript
在javaScript中检测数据类型的几种方式小结
2017/03/04 Javascript
完美实现js焦点轮播效果(二)(图片可滚动)
2017/03/07 Javascript
模块化react-router配置方法详解
2019/06/03 Javascript
基于 vue-skeleton-webpack-plugin 的骨架屏实战
2019/08/05 Javascript
JavaScript Dom 绑定事件操作实例详解
2019/10/02 Javascript
LayUi数据表格自定义赋值方式
2019/10/26 Javascript
JS实现简易贪吃蛇游戏
2020/08/24 Javascript
解决vue-loader加载不上的问题
2020/10/21 Javascript
[06:01]刀塔次级联赛top10第一期
2014/11/07 DOTA
python字符串排序方法
2014/08/29 Python
python基于queue和threading实现多线程下载实例
2014/10/08 Python
Python 3中print函数的使用方法总结
2017/08/08 Python
机器学习的框架偏向于Python的13个原因
2017/12/07 Python
python交互界面的退出方法
2019/02/16 Python
Mac 使用python3的matplot画图不显示的解决
2019/11/23 Python
python pprint模块中print()和pprint()两者的区别
2020/02/10 Python
python tqdm实现进度条的示例代码
2020/11/10 Python
受外贸欢迎的美国主机:BlueHost
2017/05/16 全球购物
SQL Server面试题
2013/04/04 面试题
爱情保证书范文
2014/02/01 职场文书
员工考核管理制度
2014/02/02 职场文书
法制宣传标语集锦
2014/06/25 职场文书
购房意向书
2014/08/30 职场文书
2015年家长学校工作总结
2015/04/22 职场文书
2015年六年级班主任工作总结
2015/10/15 职场文书
netty 实现tomcat的示例代码
2022/06/05 Servers