详解如何使用babel进行es6文件的编译
1.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中,我们能够通过各类加载器进行样式的加载,在使用样式加载的时候,通过下面链接进行查看://www.jb51.net/article/141096.htm
以上就是babel编译es6文件的方法,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 通过Session记录数据
- Layui表格单元个编辑事件
- 程序员画图两大神器,贴心老哥推荐
- 被面试官虐了,索引为何使用B+树,你知道吗
- Supermap GIS地图知识点
- 最全一篇Lombok使用讲解,及原理,真香啊
- 过来人对迷茫的程序员一点建议,3种学习方式的优缺点
- Java实现分页模糊查询
- VB.NET 仿spy++拖拽图标获取窗体句柄
- 线程生命周期,五大状态转换分析
- 推荐 2 款超牛逼、炫酷、实用的Docker管理工具!
- [业界方案]用Jaeger来学习分布式追踪系统Opentracing
- 记一次FullGC的排查经历--从日志到业务代码
- [源码分析] OpenTracing之跟踪Redis
- Python 3.8 新功能大揭秘