何为babel / gulp
Babel主要用来将新版本的javascript(ES6,ES7)编译为ES5,目前它对于新标准的支持程度甚至高于Chrome浏览器。通过引入预设babel-preset-react,babel还能解析jsx语法结构。
其实,原本的babel什么都不会做,babel index.js只是将index.js里的内容输出到控制台。而babel index.js --out-file output.js 则产生一个新文件(如果没有提前创建的话),并把index.js的内容拷贝到output.js中;babel src --out-file dest,则是将src文件夹里的所有文件拷贝到dest下。
为了让babel具备解析功能,需要在工程文件下创建一个名为.babelrc的文件,其中可以指定多个参数,常用的有
{
"presets": ["es2015","react"],
"plugins": "transform-runtime"
}
presets是一组相关的plugins的集合,例如es2015就包含了es2015-arrow-functions/es2015-for-of等插件。
gulp是一个基于nodejs流的自动化构建工具,其API有:gulp.src(),返回所指文件的可读流,并且可以用pipe方法输入到插件进行处理;gulp.dest()返回一个可写流,将上一步的流写入指定文件;gulp.watch(glob,[tasks]),监视glob的内容,当发生变化时,执行[tasks]里的任务;gulp.task("taskname",fn),定义taskname任务,fn为相应的函数。Gulp的任务要放到gulpfile.js里。
gulp和babel一样的是,它本身不会完成什么复杂的事情,其主要功能依靠插件完成。gulp-less可以将less编译为css, gulp-minify-css可以把css压缩,gulp-minify-html压缩html,gulp-babel则可以将ES6的代码编译为ES5。以下是一个简单的将index.js编译为ES5的gulpfile.js:
var gulp = require("gulp")
var babel = require("gulp-babel")
gulp.task("default",function(){
gulp.src("./index.js").pipe(babel({presets:"es2015"})).pipe(gulp.dest("./output.js"))
})
所以babel和gulp的侧重点不同,babel着重于编译,在babel的环境下可以尝试新标准定义的语法;gulp是用来构建项目结构的,使用它的插件,能实现压缩、合并、热更新等。
何为babel / gulp的更多相关文章
- ES6项目构建(babel+gulp+webpack)
(一)基础架构 (二)任务自动化(gulp) (三)编译工具(babel,webpack) (四)代码实现 一.基础构架 1.app : 放置前端代码 css : css文件 js : js文件 cl ...
- browserify babel gulp 没有编译import的文件
1.遇到坑的gulp配置: var gulp = require('gulp'), watch = require('gulp-watch'), babel = require('gulp-babel ...
- ES6转换器之Babel
ES6部分功能没有支持,所以想学习ES6,得先有个转换器,就是将ES6的代码转换为ES5. 我这里用的是Gulp + Bable的形式来将ES6转换为ES5的. 前提: (1).Gulp和Bable都 ...
- 使用babel编译es6
起因:开发中慢慢的学习使用es6,但是JavaScript需要浏览器来解析,而不是所有浏览器都支持es6,所以为了兼容es6,需要第三方工具进行编译es6. 工具:node,gulp,gulp-bab ...
- gulp + gulp-better-rollup + rollup 构建 ES6 开发环境
gulp + gulp-better-rollup + rollup 构建 ES6 开发环境 关于 Gulp 就不过多啰嗦了.常用的 js 模块打包工具主要有 webpack.rollup 和 bro ...
- 使用gulp+bebal实现前端自动化es6转es5的构建
说明:es6语法已经越来越普及,但是一些低版本的浏览器不支持es6的语法特性,所以我们在开发完前端项目后,往往需要统一把前端es6的代码编译成es5的代码.本文介绍的就是如何手动和自动的把es6转成e ...
- gulp#4.0
gitbook教程: https://dragon8github.gitbooks.io/gulp-webpack/content/an-zhuang-gulp-4-0.html gulpfile.j ...
- babel初学教程
babel安装 安装前你需要安装node.js和npm以及gulp三个包. 然后执行以下命令 $ npm init 然后在安装 babel和babel-core两个包 $ npm install -- ...
- 《移动Web前端高效开发实战》笔记2——使用Gulp构建一个ECMAScript 6和Sass应用
8.3.1 安装和配置 运行Gulp需要Node.js环境,请参看第二章内容搭建Node.js环境.使用NPM全局安装Gulp,命令如下: npm install gulp-cli –g 然后,在项目 ...
随机推荐
- win7(64位)php5.5-Apache2.4-mysql5.6环境安装
原文链接http://jingyan.baidu.com/article/9faa723152c5d6473d28cb47.html 工具/原料 php-5.5.10-Win32-VC11-x64.z ...
- DIJ产品系列
- 大规模IP地址黑名单高性能查询实现
嗯……前阵子接了个活儿,需要做一个基于IP地址黑名单的分流网关.刚接到的时候心想iptables不就行了么,没想到一看客户给的IP黑名单规模……我擦……上亿个…… 黑名单到了这个规模,就不得不考虑下优 ...
- mvc通过controller创建交互接口
public JsonResult Home(string userName, string password, string type) { List<person> list = ne ...
- pointer on c
http://blog.csdn.net/daniel_ice/article/details/6857019 http://www.cppblog.com/cuigang/archive/2008/ ...
- Access数据库的模糊查询到底是用*还是%
今天被用了一下Access数据库,结果被它的模糊查询给折腾了一上午,到底是用*还是%?特此记下来 事情是这样的,我用C#写了个小的窗体程序,访问Access数据库进行一个模糊查询,我先手工往Acces ...
- C#笔试(程序设计)
1.如何把一个Array复制到ArrayList里,如何把ArrayList复制到Array里? foreach( object o in array )arrayList.Add(o); Array ...
- 【转】Java关键字final、static使用总结
转自:http://lavasoft.blog.51cto.com/62575/18771/ Java关键字final.static使用总结 一.final 根据程序上下文环境, ...
- rabbitMQ学习(一)
一般模式 服务端: import com.rabbitmq.client.Channel; import com.rabbitmq.client.Connection; import com.rabb ...
- python随便笔记。。。
一.input().strip(),strip()的作用是不读取用户输入的空格 s.strip(rm) 删除s字符串中开头.结尾处,位于 rm删除序列的字符s.lstrip(rm) ...