babel基本使用详解


Posted in Javascript onFebruary 17, 2017

什么是babel?

babel是一个强大的多用途js编译器 点击进入官网

安装babel

npm install -g babel-cli 
npm install --save-dev babel-cli

babel配置文件

通过.babelrc来表示

{
 "presets" : [ ],
 "plugins" : [ ]
}

presets用来存放一些预设

plugins用来存放一些插件 

命令行的简单使用

我们可以通过 -o (--out-file) 参数来编译一个文件

babel es6.js -o es5.js / babel es6 --out-file es5.js

如果我们想编译整个目录 -d (--out-dir)参数

babel  src -d build / babel  src --out-dir build

预设

现在有一段es6的代码,我们想要使用babel来编译这段代码, 目前来说通过编译后的代码几乎是原封不动的复制了过来

es6.js

var add = (a,b) =>{
 console.log(a+b)
}
add(1,2)

我们可以安装babel-preset-es2015来解析es2015的语法

npm install --save-dev babel-preset-es2015

然后通过配置.babelrc文件

{
 "presets": ["es2015"]
}

这样我们就可以进行对es2015语法解析了。最后通过配置package.json的scripts

"scripts": {
 "build" : "babel src -d build -w"
 }

接下来直接在命令行

npm run build

插件

在babel中有很多很多的插件, 例如我们要将下面一段代码转换成umd的形式,该如何做呢?

var add = (a,b) =>{
 console.log(a+b)
}
add(1,2)

首先找到对应的插件babel-plugin-transform-es2015-modules-umd,安装该插件

npm install --save-dev babel-plugin-transform-es2015-modules-umd

在配置中引入

{
 "presets":["es2015"],
 "plugins":["transform-es2015-modules-umd"]
}

然后编译后就是我们想要的了

(function (global, factory) {
 if (typeof define === "function" && define.amd) {
 define(["module", "exports"], factory);
 } else if (typeof exports !== "undefined") {
 factory(module, exports);
 } else {
 var mod = {
  exports: {}
 };
 factory(mod, mod.exports);
 global.sum = mod.exports;
 }
})(this, function (module, exports) {
 "use strict";
 Object.defineProperty(exports, "__esModule", {
 value: true
 });
 var sum = function sum(a, b) {
 return a + b;
 };
 exports.default = sum;
 module.exports = exports["default"];
});

集成gulp

babel可以单独使用, 也可以配合构建工具(gulp webpack等)进行结合

首先要下载gulp 和gulp对应的babel插件

npm install gulp gulp-babel --save-dev

创建gulp配置gulpfile.js

const gulp = require('gulp')
const babel = require('gulp-babel')
gulp.task('babel', ()=>{
 return gulp.src('src/**/*.js')
  .pipe(babel())  
  .pipe(gulp.dest('dist'))
})
gulp.task('default' , ['babel'])

配置下package.json中的scripts

"scripts": {
 "dev" : "./node_modules/.bin/gulp"
 }

最后执行命令

npm run dev

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
jQuery建立一个按字母顺序排列的友好页面索引(兼容IE6/7/8)
Feb 26 Javascript
JQuery中如何传递参数如click(),change()等具体实现
Apr 28 Javascript
jquery制作LED 时钟特效
Feb 01 Javascript
JavaScript实现select添加option
Jul 03 Javascript
浅谈Javascript中substr和substring的区别
Sep 30 Javascript
自动化测试读写64位操作系统的注册表
Aug 15 Javascript
微信小程序 地图(map)实例详解
Nov 16 Javascript
AngularJS 表单验证手机号的实例(非必填)
Nov 12 Javascript
JavaScript实现二叉树定义、遍历及查找的方法详解
Dec 20 Javascript
VUEJS 2.0 子组件访问/调用父组件的实例
Feb 10 Javascript
使用puppeteer破解极验的滑动验证码
Feb 24 Javascript
Vue $mount实战之实现消息弹窗组件
Apr 22 Javascript
JS及JQuery对Html内容编码,Html转义
Feb 17 #Javascript
canvas 实现中国象棋
Feb 17 #Javascript
使用vue.js实现checkbox的全选和多个的删除功能
Feb 17 #Javascript
js实现横向拖拽导航条功能
Feb 17 #Javascript
js转换对象为xml
Feb 17 #Javascript
EsLint入门学习教程
Feb 17 #Javascript
使用bat打开多个cmd窗口执行gulp、node
Feb 17 #Javascript
You might like
php定界符
2014/06/19 PHP
php的crc32函数使用时需要注意的问题(不然就是坑)
2015/04/21 PHP
超强多功能php绿色集成环境详解
2017/01/25 PHP
js资料toString 方法
2007/03/13 Javascript
Javascript 获取字符串字节数的多种方法
2009/06/02 Javascript
js 判断脚本加载完毕的代码
2011/07/13 Javascript
从URL中提取参数与将对象转换为URL查询参数的实现代码
2012/01/12 Javascript
js改变img标签的src属性在IE下没反应的解决方法
2013/07/23 Javascript
javascript自定义in_array()函数实现方法
2015/08/03 Javascript
JavaScript实现数据类型的相互转换
2016/03/06 Javascript
jQuery获取复选框被选中数量及判断选择值的方法详解
2016/05/25 Javascript
使用jQuery5分钟快速搞定双色表格的简单实例
2016/08/08 Javascript
javascript表达式和运算符详解
2017/02/07 Javascript
jQuery获取Table某列的值(推荐)
2017/03/03 Javascript
Angular.js中ng-include用法及多标签页面的实现方式详解
2017/05/07 Javascript
详解Angular2学习笔记之Html属性绑定
2018/01/03 Javascript
详解JavaScript事件循环机制
2018/09/07 Javascript
vue element动态渲染、移除表单并添加验证的实现
2019/01/16 Javascript
JS实现音乐导航特效
2020/01/06 Javascript
jQuery 图片查看器插件 Viewer.js用法简单示例
2020/04/04 jQuery
python 用 xlwings 库 生成图表的操作方法
2019/12/22 Python
浅谈tensorflow中dataset.shuffle和dataset.batch dataset.repeat注意点
2020/06/08 Python
浅谈PyTorch中in-place operation的含义
2020/06/27 Python
Python实例方法、类方法、静态方法区别详解
2020/09/05 Python
python如何控制进程或者线程的个数
2020/10/16 Python
香港个人化生活购物网站:Ballyhoo Limited
2016/09/10 全球购物
优秀大学生的自我评价
2014/01/16 职场文书
医院总经理岗位职责
2014/02/04 职场文书
大学生学期自我鉴定
2014/03/19 职场文书
高级工程师英文求职信
2014/03/19 职场文书
花坛标语大全
2014/06/30 职场文书
2014国庆节标语口号
2014/09/19 职场文书
员工表扬信怎么写
2015/05/05 职场文书
2015年小学辅导员工作总结
2015/05/27 职场文书
学校运动会通讯稿
2015/07/18 职场文书
JS开发前端团队展示控制器来为成员引流
2022/08/14 Javascript