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 相关文章推荐
Prototype使用指南之base.js
Jan 10 Javascript
jQuery中noconflict函数的实现原理分解
Feb 03 Javascript
学习JavaScript设计模式(代理模式)
Dec 03 Javascript
jquery中键盘事件小结
Feb 24 Javascript
原生js实现addClass,removeClass,hasClass方法
Apr 27 Javascript
JQuery EasyUI学习教程之datagrid 添加、修改、删除操作
Jul 09 Javascript
原生JS实现轮播效果+学前端的感受(防止走火入魔)
Aug 21 Javascript
jquery横向纵向鼠标滚轮全屏切换
Feb 27 Javascript
jQuery输入框密码的显示隐藏【代码分享】
Apr 29 jQuery
vue input实现点击按钮文字增删功能示例
Jan 29 Javascript
详解js加减乘除精确计算
Mar 19 Javascript
vue iview 隐藏Table组件里的某一列操作
Nov 13 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
phpMyAdmin2.11.6安装配置方法
2008/08/24 PHP
使用PHP实现蜘蛛访问日志统计
2013/07/05 PHP
PHP实现取得HTTP请求的原文
2014/08/18 PHP
使用php方法curl抓取AJAX异步内容思路分析及代码分享
2014/08/25 PHP
在WordPress的后台中添加顶级菜单和子菜单的函数详解
2016/01/11 PHP
利用webqq协议使用python登录qq发消息源码参考
2013/04/08 Javascript
javascript实现可改变滚动方向的无缝滚动实例
2013/06/17 Javascript
jQuery获取节点和子节点文本的方法
2014/07/22 Javascript
jquery中的工具使用方法$.isFunction, $.isArray(), $.isWindow()
2015/08/09 Javascript
Jquery日历插件制作简单日历
2015/10/28 Javascript
详解JavaScript常量定义
2017/01/03 Javascript
vue.js之vue-cli脚手架的搭建详解
2017/05/05 Javascript
react-native组件中NavigatorIOS和ListView结合使用的方法
2017/09/30 Javascript
利用npm 安装删除模块的方法
2018/05/15 Javascript
微信小程序rich-text富文本用法实例分析
2019/05/20 Javascript
Vue中遍历数组的新方法实例详解
2019/07/21 Javascript
小程序实现图片预览裁剪插件
2019/11/22 Javascript
关于pip的安装,更新,卸载模块以及使用方法(详解)
2017/05/19 Python
python 如何快速找出两个电子表中数据的差异
2017/05/26 Python
python 递归遍历文件夹,并打印满足条件的文件路径实例
2017/08/30 Python
基于并发服务器几种实现方法(总结)
2017/12/29 Python
python3爬取数据至mysql的方法
2018/06/26 Python
对Pyhon实现静态变量全局变量的方法详解
2019/01/11 Python
树莓派使用python-librtmp实现rtmp推流h264的方法
2019/07/22 Python
通过python检测字符串的字母
2020/02/18 Python
Python实现删除某列中含有空值的行的示例代码
2020/07/20 Python
美国儿童玩具、装扮和玩偶商店:Magic Cabin
2018/09/02 全球购物
LN-CC日本:高端男装和女装的奢侈时尚目的地
2019/09/01 全球购物
领导干部廉政承诺书
2014/03/27 职场文书
计算机专业应届生求职信
2014/04/06 职场文书
市贸粮局召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
2014年电厂个人工作总结
2014/11/27 职场文书
教师节联欢会主持词
2015/07/04 职场文书
装修安全责任协议书
2016/03/22 职场文书
JS的深浅复制详细
2021/10/16 Javascript
Python内置数据类型中的集合详解
2022/03/18 Python