gulp入坑系列(4)——gulp的代码转换
当然,gulp不仅仅能转换Sass,这里会提到如下转换:
- jsx转换成常规的JavaScript(说到jsx,玩过react的同学应该是知道的)
- es6转换为es5
- Less,Sass转换为CSS
| jsx代码转换 | npm install gulp-react |
| es6代码转换 |
npm install gulp-babel , npm install babel-preset-es2015
(其实es6也叫es2015)
|
| less代码转换 | npm install gulp-less |
| sass代码转换 | npm install gulp-sass |
- 'use strict';
- const react = require('react');
- class MYTEST extends react.Component{
- constructor(props){
- //noinspection JSAnnotator
- super(props);
- }
- render(){
- return (
- <div>gulp react ,jsx to js and es6 to es5.</div>
- )
- }
- }
接下来在项目根目录下来新建出我们的主角——gulpfile.js,写入代码如下:
- var gulp = require('gulp');
- var react = require('gulp-react');
- var babel = require('gulp-babel');
- var less = require('gulp-less');
- var sass = require('gulp-sass');
- gulp.task("default",function () {
- return gulp.src('./src/jsxAndEs6.js') //要转换的文件
- .pipe(react()) //转换jsx代码
- .pipe(babel({
- presets:['babel-preset-es2015'] //插件数组
- })) //es6转es5
- .pipe(gulp.dest('./dest'));//转换后的文件输出到这里
- })
注意:这里引入库的时候,并没有引入我们用npm安装的babel-preset-es2015,因为他是作为babel进行转换时的一个插件参数存在的,直接在babel中调用即可
接下来运行gulp指令,会发现目录的dest目录下,多了一个我们转换后的js文件,打开转换后的代码,惨不忍睹啊:
到这里呢,jsx和es6的转换就搞定了。
接下来是Less和Sass:
首先在src目录下新建一个less文件,代码如下:
- @color:#aaa;
- .container{
- color:@color;
- }
再新建一个sass文件,代码如下:
- $fontStack: Helvetica, sans-serif;
- $primaryColor: #333;
- body {
- font-family: $fontStack;
- color: $primaryColor;
- }
接下来回到我们的gulpfile.js,添加转换sass和less的task:
- var gulp = require('gulp');
- var react = require('gulp-react');
- var babel = require('gulp-babel');
- var less = require('gulp-less');
- var sass = require('gulp-sass');
- gulp.task('less',function () {
- return gulp.src('./src/Less_style.less')
- .pipe(less())
- .pipe(gulp.dest('./dest'));
- });
- gulp.task('sass',function () {
- return gulp.src('./src/Sass_style.scss')
- .pipe(sass())
- .pipe(gulp.dest('./dest'))
- })
- gulp.task("default",['less','sass'],function () {
- return gulp.src('./src/jsxAndEs6.js') //要转换的文件
- .pipe(react()) //转换jsx代码
- .pipe(babel({
- presets:['babel-preset-es2015'] //插件数组
- })) //es6转es5
- .pipe(gulp.dest('./dest'));//转换后的文件输出到这里
- });
注意,写了新的task之后,一定要引入到default中哦,不然不会执行的。
接下来在命令行执行gulp指令,会发现dest文件夹下多出了编译后的css文件,效果如下:
大功告成~~
gulp入坑系列(4)——gulp的代码转换的更多相关文章
- gulp入坑系列(2)——初试JS代码合并与压缩
在上一篇里成功安装了gulp到项目中,现在来测试一下gulp的合并与压缩功能 gulp入坑系列(1)--安装gulp(传送门):http://www.cnblogs.com/YuuyaRin/p/61 ...
- gulp入坑系列(1)——安装gulp
前言 好吧,我承认我是为了搞定Sass编译CSS文件的问题,迷一样的着手入gulp的坑,sass和gulp的爬坑历程大概会一起更新.然后感觉这里windows和mac的流程差不多,不过mac的通常 ...
- gulp入坑系列(3)——创建多个gulp.task
继续gulp的爬坑路,在准备get更多gulp的具体操作之前,先来明确一下在gulp中创建和使用多个task任务的情况. gulp所要做的操作都写在gulp.task()中,系统有一个默认的defau ...
- 3-STM32带你入坑系列(自己封装点亮一个灯的库--Keil)
2-STM32带你入坑系列(点亮一个灯--Keil) 首先建一个stm32f103x.h的文件,然后 #include "stm32f103x.h" 还记得上一节 现在呢就是做一个 ...
- 2-STM32带你入坑系列(点亮一个灯--Keil)
1-STM32带你入坑系列(STM32介绍) 首先是安装软件 这一节用Kei来实现,需要安装MDK4.7这个软件,怎么安装,自己百度哈.都学习32的人了,不会连个软件都不会安装吧....还是那句话 没 ...
- 1-STM32带你入坑系列(STM32介绍)
由于自己的物联网开发板上的单片机是用的STM32,但是有些朋友没有用过,所以我将用这块开发板,带着大家入门STM32 先介绍一下STM32,我是在大三下学期的时候开始接触STM32,当时是想做一个小车 ...
- 入坑第二式 golang入坑系列
史前必读: 这是入坑系列的第二式,如果错过了第一式,可以去gitbook( https://andy-zhangtao.gitbooks.io/golang/content/ )点个回放,看个重播.因 ...
- Docker入坑系列(二)
Docker入坑系列(二) 上一篇我们为Docker创造了一个良好的生活环境,这一篇我们就开始让Docker活起来. 安装Docker ok,原文地址在这里. 当然,我只是自己翻译了一下而已- -跟着 ...
- Docker入坑系列(一)
Docker入坑系列(一) 引用嘛,当然是来引用别人说的东西啦. Docker 是一个开源项目,诞生于 2013 年初,它基于 Google 公司推出的 Go 语言实现. 项目后来加入了 Linux ...
随机推荐
- android手机出现sqlite3 not found的解决方法
解决方法如下: 1.如果/system目录为不可读写的,需要挂载为读写: C:\Users\easteq>adb shell root@android:/ # mount -o remount, ...
- Table_EXISTS_ACTION=APPEND时导入数据时
11g对数据泵新增了一些功能.这篇介绍新增的选项DATA_OPTIONS=SKIP_CONSTRAINT_ERRORS. Oracle11g的数据泵新增了一个DATA_OPTIONS选项,目前只有一个 ...
- MongoDB的学习--文档的插入、删除和更新
最近在看<MongoDB权威指南>,写博客记录一下相关内容~~ 关于安装之类的最基本的就不多说了,从基本操作增删改查开始. MongoDB官网地址:http://www.mongodb.o ...
- extractCSS – 帮助你从 HTML 中快速分离出 CSS
extractCSS 是一个免费的基于 Web 的应用程序,能够从 HTML 中提取风格相关的信息,包括 id.class 和内联样式,而且输出可以定制(缩进和括号的用法).该工具非常有用,当我们快速 ...
- Solr搜索服务架构图
来源:http://www.open-open.com/lib/view/open1400576900081.html
- SQL Server中的事务日志管理(3/9):事务日志,备份与恢复
当一切正常时,没有必要特别留意什么是事务日志,它是如何工作的.你只要确保每个数据库都有正确的备份.当出现问题时,事务日志的理解对于采取修正操作是重要的,尤其在需要紧急恢复数据库到指定点时.这系列文章会 ...
- 在VS中使用TinyFox调试OWIN应用(转)
在很早一段时间之前,我曾经写过一篇关于Katana的使用方法的文章<如何安装并简单的使用OwinHost——Katana>,上面就有介绍如何在VS中调试使用Katana作为Host的App ...
- awk分隔符设定为多个字符或字符串
awk -F"[01]" '{}' 这种形式指定的分隔符是或的关系,即0或1作为分隔符:awk -F"[0][1]" '{}' 这种形式指定的分隔符是合并的关 ...
- WatiN框架学习二——对弹窗的处理
以IE为例,WatiN处理弹出窗口: IE ie = new IE("string"); //打开指定web页 ie.Button(Find.ById("string&q ...
- [Solution] NPOI操作Excel
NPOI 是 POI 项目的 .NET 版本.POI是一个开源的Java读写Excel.WORD等微软OLE2组件文档的项目.使用 NPOI 你就可以在没有安装 Office 或者相应环境的机器上对 ...