当前位置:首页 > 日记 > 正文

babel基本使用详解

babel基本使用详解

什么是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

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

相关文章

ps人像精修之中性灰人像修图详细解

ps人像精修之中性灰人像修图详细解

人像,详细,电脑软件,ps,一说到中性灰,都感觉很高大上,其实搞懂后也不算难,就是一个图层的事儿,今天赶紧给大家带来了利用中性灰图层修容的教程,希望能够拯救大家干瘪的钱包。效果图软件名称:Adobe Photoshop 8.0 中文完整绿色破解版软件大小:150.1…

Illustrator绘制绚丽科技风格的蓝

Illustrator绘制绚丽科技风格的蓝

绘制,光线,绚丽,背景,风格,这篇教程是向分享Illustrator绘制绚丽科技风格的蓝色光线背景方法,教程制作出来的背景非常漂亮,而且难度不是很大,对于初学者来说是个很好的学习案例,一起来学习吧!步骤:教程结束,以上就是Illustrator绘制绚丽科技风格的…

Vue 2.5 Level E 发布了: 新功能特

Vue 2.5 Level E 发布了: 新功能特

新功能,特性,发布了,电脑软件,Vue,我们很高兴宣布 Vue 2.5 Level E 的发布!本次发布包括多个功能提升并且我们推荐你查看发布说明来获取完整详细信息。 在这篇文章中,我们将重点介绍一些更重要的的变化:更好的 TypeScript 集成,更好的错误处理…

excel中设置X轴为时间轴的方法exce

excel中设置X轴为时间轴的方法exce

设置,时间轴,方法,电脑软件,excel,  Excel中的时间轴具体该如何在X轴上设置呢?下面是由小编分享的excel中设置X轴为时间轴的方法,以供大家阅读和学习。excel中设置X轴为时间轴的方法设置时间轴步骤1:用excel 打开一个带有图表的数据表excel…

CDR怎么制作彩色涂鸦字效果?

CDR怎么制作彩色涂鸦字效果?

涂鸦,彩色,效果,电脑软件,CDR,有同学反映说,如果想要做带有颜色的涂鸦字要如何实现,通过前面的教程我们已经学会了使用CDR制作涂鸦字效果,相关教程可参阅CDR制作涂鸦字的方法,其实彩色涂鸦字不仅仅用到图框精确剪裁功能,前面的步骤都一样,除此之…

解读vue生成的文件目录结构及说明

解读vue生成的文件目录结构及说明

目录结构,文件,电脑软件,vue,利用node和npm环境我们可以很快的搭建一个vue环境。具体步骤,请看上一篇博客。搭建完成后,我们可以看到生成的文件夹中包括如下文件: 1、build文件夹是保存一些webpack的初始化配置。config文件夹保存一些项目初始…

photoshop cs6怎么等比例缩放?

photoshop cs6怎么等比例缩放?

缩放,等比例,电脑软件,photoshop,在PS画布上已有一张图,现在需要把“人物”等比例缩放。软件名称:Adobe Photoshop 8.0 中文完整绿色破解版软件大小:150.1MB更新时间:2015-11-041、在PS画布上已有一张图,现在需要把“女孩”…

PS怎么排版图文? ps文字排版的四个

PS怎么排版图文? ps文字排版的四个

文字排版,图文,技巧,电脑软件,PS,好的作品,其最基本的要素就是细节的丰富和完善,细节处理得好,作品想出问题都难。下面就对大部分人都非常头疼的文案排版需要注意的细节问题做一个较为详细的总结和分析,希望能对文案排版有困惑的朋友有一个较好…

node文字生成的示例代码

node文字生成的示例代码

示例代码,文字,电脑软件,node,今天老板提了需求,要在服务端生成邀请卡,嗯…,简单的说就是把要这张:变成差多这样的:后端搞ruby的哥们搞了个html转图片,说转得太慢了,我就把这坑接下来了所以睡前就倒腾了下,搞了个简单的实现解决思路文字转svg -> sv…

Angular中$state.go页面跳转并传递

Angular中$state.go页面跳转并传递

传递参数,方法,页面跳转,电脑软件,Angular,遇到一个页面跳转的时候,在跳转后的页面获取跳转前页面的数据,我想到用一种是localstorage,一种用broadcast和on,然后老大说不用这么麻烦,既然都$state.go了直接带参数,这次就介绍一下$state.go页面跳…

ionic中的$ionicPlatform.ready事

ionic中的$ionicPlatform.ready事

设置,通用,事件中,电脑软件,ionic,前言$ionicPlatform.ready事件是用于检测当前的平台是否就绪的事件,相当于基于document的deviceready事件, 在app中一些通用关于设备的设置必须在这个事件中处理, 为了代码的可读性,我们把设置功能封装成一…

一个简易的js轮播效果

一个简易的js轮播效果

简易,效果,电脑软件,js,一个简易的js图片轮播效果,话不多说,代码献上. 只有img标签的html代码,做测试用:<body> <img src="images/class1-1.jpg" id="img"> </body> 下面是js代码:var k=0; //当前的索引var ss = new Array(); //数组,用来…