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实现的定时显示与隐藏div广告的实现代码
Aug 22 Javascript
学习JavaScript设计模式(代理模式)
Dec 03 Javascript
JavaScript中的跨浏览器事件操作的基本方法整理
May 20 Javascript
JS实现iframe自适应高度的方法(兼容IE与FireFox)
Jun 24 Javascript
vue中渐进过渡效果实现
Oct 27 Javascript
jQuery插件FusionCharts实现的2D饼状图效果【附demo源码下载】
Mar 03 Javascript
vue中mint-ui环境搭建详细介绍
Apr 06 Javascript
node.js中EJS 模板快速入门教程
May 08 Javascript
你可能不知道的JSON.stringify()详解
Aug 17 Javascript
es6系列教程_ Map详解以及常用api介绍
Sep 25 Javascript
vue如何在自定义组件中使用v-model
May 14 Javascript
关于vue 结合原生js 解决echarts resize问题
Jul 26 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
一次编写,随处运行
2006/10/09 PHP
一个PHP日历程序
2006/12/06 PHP
PHP 全角转半角实现代码
2010/05/16 PHP
给WordPress的编辑后台添加提示框的代码实例分享
2015/12/25 PHP
Jquery:ajax实现翻页无刷新功能代码
2013/08/05 Javascript
如何实现textarea里的不同文本显示不同颜色
2014/01/20 Javascript
在Linux上用forever实现Node.js项目自启动
2014/07/09 Javascript
JavaScript模拟push
2016/03/06 Javascript
详解Javascript数据类型的转换规则
2016/12/12 Javascript
微信小程序 页面跳转及数据传递详解
2017/03/14 Javascript
vue router动态路由设置参数可选问题
2019/08/21 Javascript
python实现爬取千万淘宝商品的方法
2015/06/30 Python
用Python登录好友QQ空间点赞的示例代码
2017/11/04 Python
vue.js实现输入框输入值内容实时响应变化示例
2018/07/07 Python
python实现矩阵打印
2019/03/02 Python
在python中做正态性检验示例
2019/12/09 Python
PyCharm 2020 激活到 2100 年的教程
2020/03/25 Python
基于plt.title无法显示中文的快速解决
2020/05/16 Python
通过实例简单了解Python sys.argv[]使用方法
2020/08/04 Python
linux系统下pip升级报错的解决方法
2021/01/31 Python
巴西独家产品和现场演示购物网站:Shoptime
2019/07/11 全球购物
澳大利亚一站式数码相机商店:CameraPro
2020/03/09 全球购物
关于逃课的检讨书
2014/01/23 职场文书
梅花魂教学反思
2014/04/25 职场文书
科学发展观活动总结
2014/08/28 职场文书
贵阳市党的群众路线教育实践活动党(工)委领导班子整改方案
2014/10/26 职场文书
2014年初一班主任工作总结
2014/11/08 职场文书
2014年安全管理工作总结
2014/12/01 职场文书
成绩报告单家长评语
2014/12/30 职场文书
会计岗位职责
2015/02/03 职场文书
领导离职感言
2015/08/03 职场文书
护士业务学习心得体会
2016/01/25 职场文书
个人工作总结怎么写?
2019/04/09 职场文书
MySQL表字段时间设置默认值
2021/05/13 MySQL
MySql开发之自动同步表结构
2021/05/28 MySQL
RPM包方式安装Oracle21c的方法详解
2021/08/23 Oracle