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 相关文章推荐
给页面渲染时间加速 干掉Dom Level 0 Event
Dec 19 Javascript
jquery选择器-根据多个属性选择示例代码
Oct 21 Javascript
jQuery的DOM操作之删除节点示例
Jan 03 Javascript
jQuery的animate函数实现图文切换动画效果
May 03 Javascript
解决jquery中动态新增的元素节点无法触发事件问题的两种方法
Oct 30 Javascript
vue.js表格组件开发的实例详解
Oct 12 Javascript
浅谈ES6新增的数组方法和对象
Aug 08 Javascript
微信小程序中setInterval的使用方法
Sep 29 Javascript
详解Vue webapp项目通过HBulider打包原生APP(vue+webpack+HBulider)
Feb 02 Javascript
微信公众平台 客服接口发消息的实现代码(Java接口开发)
Apr 17 Javascript
js布局实现单选按钮控件
Jan 17 Javascript
详解vue中v-on事件监听指令的基本用法
Jul 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如何得到当前页和上一页的地址?
2006/11/27 PHP
pdo中使用参数化查询sql
2011/08/11 PHP
php除数取整示例
2014/04/24 PHP
2014最热门的24个php类库汇总
2014/12/18 PHP
php微信公众号开发之欢迎老朋友
2018/10/20 PHP
详解使用php-cs-fixer格式化代码
2020/09/16 PHP
Jquery easyui 下loaing效果示例代码
2013/08/12 Javascript
方便实用的jQuery checkbox复选框全选功能简单实例
2013/10/09 Javascript
实例分析javascript中的call()和apply()方法
2014/11/28 Javascript
使用JavaScript开发IE浏览器本地插件实例
2015/02/18 Javascript
JS基于FileSystemObject创建一个指定路径的TXT文本文件
2015/08/05 Javascript
jQuery+Ajax实现限制查询间隔的方法
2016/06/07 Javascript
javascript淘宝主图放大镜功能
2016/10/20 Javascript
JS实现旋转木马式图片轮播效果
2017/01/18 Javascript
vue事件修饰符和按键修饰符用法总结
2017/07/25 Javascript
vue 属性拦截实现双向绑定的实例代码
2018/10/24 Javascript
JavaScript基础之this和箭头函数详析
2019/09/05 Javascript
vue组件中节流函数的失效的原因和解决方法
2020/12/02 Vue.js
vue中利用three.js实现全景图的完整示例
2020/12/07 Vue.js
对Python新手编程过程中如何规避一些常见问题的建议
2015/04/01 Python
python3结合openpyxl库实现excel操作的实例代码
2018/09/11 Python
python 机器学习之支持向量机非线性回归SVR模型
2019/06/26 Python
Python基于数列实现购物车程序过程详解
2020/06/09 Python
Python pickle模块常用方法代码实例
2020/10/10 Python
pip install命令安装扩展库整理
2021/03/02 Python
高级运动鞋:GREATS
2019/07/19 全球购物
乌克兰的第一家手表店:Deka
2020/03/05 全球购物
函授本科毕业自我鉴定
2013/10/09 职场文书
留学经费担保书
2014/05/12 职场文书
股东合作协议书
2014/09/12 职场文书
公司行政主管岗位职责
2015/04/09 职场文书
2015年学校减负工作总结
2015/05/19 职场文书
2015年小班保育员工作总结
2015/05/27 职场文书
坚持不是死撑,更重要的是心态
2019/08/19 职场文书
Python内置数据结构列表与元组示例详解
2021/08/04 Python
GTX1650super好不好 gtx1650super显卡属于什么级别
2022/04/08 数码科技