Babel是一个广泛使用的转码器,可以将ES6代码转译为ES5代码,从而在现有环境下执行。

举例说明:

转译前(ES6格式)代码如下:

let User = {
name : '张三',
age : 22
}; let { name, age } = User;
console.log( name, age );

      

转译后(ES5格式)代码如下:

'use strict';

var User = {
name: '张三',
age: 22
}; var name = User.name,
age = User.age; console.log(name, age);

  

如上用Babel转译为ES5格式后就可以在现有的javascript环境下运行了。 

babel安装与项目部署步骤如下:

1.新建一个babel_test文件夹,并在此文件夹里面新建src和dist两个文件夹。

2.在babel_test目录下初始化项目,生成 package.json文件。

npm init -y

3.安装bable(全局安装&本地安装) 

 全局安装

npm install -g babel-cli

 本地安装

npm install --save-dev babel-preset-es2015 babel-cli(建议安装在当前目录下)

4.在babel_test目录下新建 .babelrc文件,该文件用来设置转码规则和插件,基本格式如下。(Babel的配置文件是.babelrc,存放在项目的根目录下。使用Babel必须要配置这个文件。)

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

  

5.在src文件夹下面新建代码格式为ES6的文件1.js。(文件代码如本文前面ES6格式的代码)  

6.在cmd项目目录下运行 babel src/1.js -o dist/2.js ,babel会将ES6代码自动转译并在dist文件下生成ES5格式的代码文件2.js。(文件代码如本文前面ES5格式的代码)

7.编译成功,直接引用1.js就可以在现有环境下执行了。

Bable实现由ES6转译为ES5的更多相关文章

  1. es6的let与es5的var定义变量的区别

    es6的let与es5的var定义变量的区别 自身新手第一次接触let关键字的时候,不知道let与var的区别,本能认为是一样,但非如此,比如下述的代码运行就会报错: let hello = 'hel ...

  2. 使用babel把es6代码转成es5代码

    第一步:创建一个web项目 使用命令:npm init 这个命令的目的是生成package.json. 执行第二步中的命令后生成的package.json的文件的内容是: { "name&q ...

  3. ES6 arrow function vs ES5 function

    ES6 arrow function vs ES5 function ES6 arrow function 与 ES5 function 区别 this refs xgqfrms 2012-2020 ...

  4. webpack用 babel将ES6转译ES5

    webpack webpack.config.js配置文件 module.exports = { entry: './es6.js', // 入口文件路径 output: { filename: &q ...

  5. 解决webpack和gulp打包js时ES6转译ES5时Object.assign()方法没转译成功的问题

    在webpack或gulp打包的配置文件中package.json 引入"@babel/plugin-transform-object-assign": "^7.2.0& ...

  6. 如何使用Babel将ES6转码为ES5?

    一.前言: 当我们还在沉迷于ES5的时候,殊不知ES6早就已经发布几年了.时代在进步,WEB前端技术也在日新月异,是时候做些改变了! ECMAScript 6(ES6)的发展速度非常之快,但现代浏览器 ...

  7. 前端自动化 shell 脚本命令 与 shell-node 脚本命令 简单使用 之 es6 转译

    (背景: 先用 babel 转译 es6 再 用 browserify 打包 模块化文件,来解决浏览器不支持模块化 )(Browserify是一个让node模块可以用在浏览器中的神奇工具) 今天折腾了 ...

  8. ES6数组去重及ES5数组去重方法

    ES6中新增了Set数据结构,类似于数组,但是 它的成员都是唯一的 ,其构造函数可以接受一个数组作为参数,如: let array = [1, 1, 1, 1, 2, 3, 4, 4, 5, 3]; ...

  9. Webpack4 学习笔记三 ES6+语法降级为ES5

    前言 此内容是个人学习笔记,以便日后翻阅.非教程,如有错误还请指出 Webpack 将es6.es7语法降级为es5 需要通过 babel JavaScript编译器. 安装: npm i babel ...

随机推荐

  1. js高级3

    1.解决函数内this的指向 可以在函数外提前声明变量_this/that=this 通过apply和call来修改函数内的this指向 (1)二者区别 用法是一样的,就是参数形式不一样        ...

  2. 欢迎访问我的独立博客 tracefact.net (2019.1.30)

    欢迎访问我的独立博客 tracefact.net 长期以来,我都同时维护着两个博客,博客园和 tracefact.net,感觉有点分散精力,所以博客园以后不再每篇文章都同步更新了. 我会挑个别比较好的 ...

  3. LinkedBlockingQueue 注记

    近期看一个音频传输代码时,对方采用了LinkedBlockingQueue为生产者.消费者模式,来支撑读写线程. 个人感觉非常不错,因此也对这种方式进行总结,并梳理了一个基本的功能框架备用.主要两点: ...

  4. HTML5调用手机摄像机、相册功能 <input>方法

    最近用MUI框架做webapp项目,在有PLUS环境的基础上能直接调用手机底层的API来使用拍照或从相册选择上传功能! 在查资料的时候,想起了另一种用input调用摄像和相册功能的方法,之前没有深入了 ...

  5. Java Bloom filter几种实现比较

    英文原始出处: Bloom filter for Scala, the fastest for JVM 本文介绍的是用Scala实现的Bloom filter. 源代码在github上.依照性能测试结 ...

  6. [Swift]LeetCode811. 子域名访问计数 | Subdomain Visit Count

    A website domain like "discuss.leetcode.com" consists of various subdomains. At the top le ...

  7. zuul进阶学习(二)

    1. zuul进阶学习(二) 1.1. zuul对接apollo 1.1.1. Netflix Archaius 1.1.2. 定期拉 1.2. zuul生产管理实践 1.2.1. zuul网关参考部 ...

  8. postgresql 基础sql

    创建用户和密码:crate user 用户名 with password '密码' : 创建 alter user 用户名 with password ’密码' ; 修改用户密码 查看用户信息: se ...

  9. Linux启动Redis失败/没有那个文件或目录

    没有那个文件或目录问题,可能是你选择的目录不对. 应切换到Redis目录下启动.

  10. 基于IPV6的数据包分析(更新拓扑加入了linux主机和抓取133icmp包)(第十三组)

    1.拓扑图 2.配置ipv6地址,在拓扑图上对应位置标有对应网段,所在网段的端口按照网段配置,下图以r4为例 3.配置路由表,由于静态路由还要敲ip很麻烦所以使用ospf协议,下图为ospf配置以r5 ...