详解如何使用babel进行es6文件的编译

 更新时间:2018年05月29日 14:29:15   作者:suwu150  
这篇文章主要介绍了详解如何使用babel进行es6文件的编译,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

1.babel

babel官方网址

2. 安装

npm i babel-cli -g 

通过上面命令进行babel的安装,其中i表示安装install的意思, -g表示安装到全局

3.使用

创建文件es6.js

let num = [1,2,3,4]; 
let plusDouble = num.map(item => item * 2); 
console.log(plusDouble); 

然后使用命令进行编译:

babel es6.js -o compiled.js 

然后就会在当前目录下出现编译之后的文件,就这样,我们完成了编译的过程,但是,当我们进行运行编译之后的文件时,仍然会报错,其实主要原因是上面的编译没有加约束条件,也就是没有告诉babel去怎么编译,那下面我们就进行对babel进行配置

4. 配置

(1)通过文件配置

在项目目录下创建文件.babelrc,在文件中书写如下代码:,由于babel是通过插件的形式进行使用,所以在下面代码中通过添加对象预设和插件

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

安装插件,在下面这个插件的使用,可以将ES6代码编译为ES5代码:

npm i --save-dev babel-preset-es2015 

(代码中--save-dev代表安装在本地开发依赖中)

然后将.babelrc中的文件进行修改为以下内容: 

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

至此,我们已經配置完成,运行编译命令即可得到下面的结果: 

"use strict";  
var num = [1, 2, 3, 4]; 
var plusDouble = num.map(function (item) { 
 return item * 2; 
}); 
console.log(plusDouble); 

运行之后能够正常打印结果

现在我们能够进行简单的编译,但是对于一些es7里边的新特性还是有点限制,这样,我们就的使用插件进行编译,如下面所示对象展开符插件object-rest-spread,同样的,我们使用命令进行安装

npm i babel-plugin-transform-object-rest-spread --save-dev 

同样进行到插件中修改

{ 
 "presets": ["es2015"], 
 "plugins": ["transform-object-rest-spread"] 
} 

然后通过代码进行测试,在代码中书写如下内容(...为ES7中预先提出的设想):

let courses = { name: 'english', score: 90}; 
courses = { ...courses, comment: 'A'}; 
console.log(courses); 

编译之后的结果为:

'use strict';  
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };  
var courses = { name: 'english', score: 90 }; 
courses = _extends({}, courses, { comment: 'A' }); 
console.log(courses); 

通过添加_extends方法将对象展开符进行转化,运行代码可正常输出结果

(2)通过在webpack配置文件中进行其他属性的加载配置

在webpack中,我们能够通过各类加载器进行样式的加载,在使用样式加载的时候,通过下面链接进行查看:https://www.jb51.net/article/141096.htm

以上就是babel编译es6文件的方法,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 微信小程序js时间戳与日期格式的转换方法

    微信小程序js时间戳与日期格式的转换方法

    这篇文章主要给大家介绍了关于微信小程序js时间戳与日期格式的转换方法,在小程序中使用时间选择器时,获取到的时间可能是一个时间戳,这并不是我们想要的,这时候我们得将获取到的时间戳进行转换,需要的朋友可以参考下
    2023-10-10
  • 浏览器缩放检测的js代码

    浏览器缩放检测的js代码

    这篇文章主要介绍了浏览器缩放检测的js代码,需要的朋友可以参考下
    2014-09-09
  • uniapp 动态组件实现Tabs标签切换组件(喜马拉雅app作为案例)

    uniapp 动态组件实现Tabs标签切换组件(喜马拉雅app作为案例)

    本文以喜马拉雅app作为案例给大家详解讲解uniapp 动态组件实现Tabs标签切换组件功能,在uniapp中实现动态组件切换需看uniapp是否支持,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2023-10-10
  • jQuery.extend()的实现方式详解及实例

    jQuery.extend()的实现方式详解及实例

    extend()函数是jQuery的基础函数之一,作用是扩展现有的对象
    2013-06-06
  • 怎么使用js计算当前一周的日期

    怎么使用js计算当前一周的日期

    这篇文章主要给大家介绍了关于怎么使用js计算当前一周的日期的相关资料,我们可以使用JavaScript的Date对象来获取近一周的日期,文中给出了详细的代码示例,需要的朋友可以参考下
    2023-09-09
  • javascript实现添加附件功能的方法

    javascript实现添加附件功能的方法

    这篇文章主要介绍了javascript实现添加附件功能的方法,在我们编辑信息时,有时候需要附加文件、图片实现上传功能,通过本文了解javascript是如何实现附加功能的,请阅读。
    2015-11-11
  • js实现动态加载脚本的方法实例汇总

    js实现动态加载脚本的方法实例汇总

    这篇文章主要介绍了js实现动态加载脚本的方法,以实例形式汇总并分析了几种常用的JavaScript动态加载脚本的技巧,非常具有实用价值,需要的朋友可以参考下
    2015-11-11
  • layer.open属性详解及layer.open弹出框使用post方法举例

    layer.open属性详解及layer.open弹出框使用post方法举例

    这篇文章主要给大家介绍了关于layer.open属性详解及layer.open弹出框使用post方法的相关资料,最近接触到layer弹窗,感觉弹窗功能异常强大,真的很方便,所以记录下来,需要的朋友可以参考下
    2023-12-12
  • JS获取input[file]的值并显示在页面的实现方法

    JS获取input[file]的值并显示在页面的实现方法

    下面小编就为大家分享一篇JS获取input[file]的值并显示在页面的实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • 基于JavaScript实现抽奖系统

    基于JavaScript实现抽奖系统

    这篇文章主要为大家详细介绍了基于JavaScript实现抽奖系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01

最新评论