在create-react-app中使用sass的方法示例


Posted in Javascript onOctober 01, 2018

Sass(英文全称:Syntactically Awesome Stylesheets)是一个最初由Hampton Catlin设计并由Natalie Weizenbaum开发的层叠样式表语言。Sass是一个将脚本解析成CSS的脚本语言,即SassScript。Sass包括两套语法。最开始的语法叫做“缩进语法”,与Haml类似,使用缩进来区分代码块,并且用回车将不同规则分隔开。而较新的语法叫做“SCSS”,使用和CSS一样的块语法,即使用大括号将不同的规则分开,使用分号将具体的样式分开。通常情况下,这两套语法通过.sass和.scss两个文件扩展名区分开。相信每个前端开发者都对这种css预处理器有所耳闻。

不管你是刚使用Reactjs或者是Reactjs的老司机,你们一定都听说过create-react-app这个脚手架,而从create-react-app的官方文档中,我们可以看到他们暂时还不支持直接导入LESS或者Sass。但是通过一些配置,我们还是可以从官方脚手架中使用sass/scss/less的。

1、安装node-sass-chokidar到依赖

npm install --save node-sass-chokidar

2、安装node-sass

npm install node-sass

3、在项目的package.json中,将以下行添加到scripts中:

"build-css": "node-sass-chokidar src/ -o src/",
 "watch-css": "npm run build-css && node-sass-chokidar src/ -o src/ --watch --recursive",

4、使用

创建xx.scss文件,或者将初始化项目中的src/App.css重命名为src/App.scss,在终端运行

npm run watch-css

watch-css将在src子目录中找到每个Sass文件,并在其旁边创建一个相应的CSS文件

5、同时编译sass和运行项目

(1)可以打开两个终端,一个终端执行npm start运行项目,另一个终端执行npm run watch-css进行同步编译

(2)使用npm-run-all工具,执行npm install npm-run-all --save-dev安装,在在项目的package.json中,将以下行添加到scripts中:

"run-double": "npm-run-all -p watch-css start"

在终端执行npm run run-double,可同时运行项目和编译sass

*注:"run-double"这个名称可改为自己喜欢的名称

6、推荐

更改create-react-app的webpack配置,一般使用react-app-rewired来处理

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JQuery 学习笔记 element属性控制
Jul 23 Javascript
jquery实现图片按比例缩放示例
Jul 01 Javascript
Jquery的基本对象转换和文档加载用法实例
Feb 25 Javascript
text-align:justify实现文本两端对齐 兼容IE
Aug 19 Javascript
bootstrap fileinput 插件使用项目总结(经验)
Feb 22 Javascript
借助node实战JSONP跨域实例
Mar 30 Javascript
Angular 2父子组件数据传递之@ViewChild获取子组件详解
Jul 04 Javascript
JS运动特效之任意值添加运动的方法分析
Jan 24 Javascript
Angular5.0 子组件通过service传递值给父组件的方法
Jul 13 Javascript
Vue 实时监听窗口变化 windowresize的两种方法
Nov 06 Javascript
使用vue实现HTML页面生成图片的方法
Mar 12 Javascript
vue element-ui中table合计指定列求和实例
Nov 02 Javascript
详解mpvue小程序中怎么引入iconfont字体图标
Oct 01 #Javascript
Vue 组件封装 并使用 NPM 发布的教程
Sep 30 #Javascript
浅谈angular表单提交中ng-submit的默认使用方法
Sep 30 #Javascript
angularJs中$scope数据序列化的实例
Sep 30 #Javascript
mpvue+vuex搭建小程序详细教程(完整步骤)
Sep 30 #Javascript
mpvue项目中使用第三方UI组件库的方法
Sep 30 #Javascript
mpvue将vue项目转换为小程序
Sep 30 #Javascript
You might like
提升PHP执行速度全攻略(下)
2006/10/09 PHP
利用文件属性结合Session实现在线人数统计
2006/10/09 PHP
PHP程序员常见的40个陋习,你中了几个?
2014/11/20 PHP
PHP使Laravel为JSON REST API返回自定义错误的问题
2018/10/16 PHP
php中错误处理操作实例分析
2019/08/23 PHP
php ActiveMQ的安装与使用方法图文教程
2020/02/23 PHP
javascript 的Document属性和方法集合
2010/01/25 Javascript
js实现一个省市区三级联动选择框代码分享
2013/03/06 Javascript
datagrid框架的删除添加与修改
2013/04/08 Javascript
解决jquery操作checkbox火狐下第二次无法勾选问题
2014/02/10 Javascript
基于jQuery的图片不完全按比例自动缩小
2014/07/11 Javascript
javascript使用window.open提示“已经计划系统关机”的原因
2014/08/15 Javascript
浅谈jquery事件处理
2015/04/24 Javascript
Highcharts 多个Y轴动态刷新数据的实现代码
2016/05/28 Javascript
基于JS实现数字+字母+中文的混合排序方法
2016/06/06 Javascript
一步一步封装自己的HtmlHelper组件BootstrapHelper(二)
2016/09/14 Javascript
JavaScript中附件预览功能实现详解(推荐)
2017/08/15 Javascript
使用js实现将后台传入的json数据放在前台显示
2018/08/06 Javascript
原生js实现二级联动菜单
2019/11/27 Javascript
Vue快速实现通用表单验证的方法
2020/02/24 Javascript
Js图片点击切换轮播实现代码
2020/07/27 Javascript
[01:03:31]DOTA2上海特级锦标赛B组资格赛#1 Alliance VS Fnatic第二局
2016/02/26 DOTA
[01:01:51]EG vs VG Supermajor小组赛B组 BO3 第二场 6.2
2018/06/03 DOTA
Win10下python 2.7.13 安装配置方法图文教程
2018/09/18 Python
快速解决pyqt5窗体关闭后子线程不同时退出的问题
2019/06/19 Python
python如何实现代码检查
2019/06/28 Python
Django使用Channels实现WebSocket的方法
2019/07/28 Python
Django框架安装方法图文详解
2019/11/04 Python
python被修饰的函数消失问题解决(基于wraps函数)
2019/11/04 Python
Python如何在bool函数中取值
2020/09/21 Python
详解移动端HTML5页面端去掉input输入框的白色背景和边框(兼容Android和ios)
2016/12/15 HTML / CSS
英国最大的婴儿监视器网上商店:Baby Monitors Direct
2018/04/24 全球购物
物流创业计划书
2014/02/01 职场文书
高中学生期末评语
2014/04/25 职场文书
教师批评与自我批评剖析材料
2014/10/16 职场文书
关于Python使用turtle库画任意图的问题
2022/04/01 Python