如何将ES6转换成ES5?

更新日期: 2019-10-19阅读: 3.3k标签: es6

一、 介绍

ECMAScript 6(ES6)的发展速度非常之快,但现代浏览器对ES6新特性支持度不高,所以要想在浏览器中直接使用ES6的新特性就得借助别的工具来实现。

babel是一个广泛使用的转码器,babel可以将ES6代码完美地转换为ES5代码,所以我们不用等到浏览器的支持就可以在项目中使用ES6的特性。


二、使用

1、新建工程文件夹这里起名叫做es6,然后在里面创建两个文件夹分别为src 、js如下图:(src为待转换es6 js存放目录,js为编译完成后的es5 js存放目录)

2、在src目录下新建一个js文件(这里起名叫做index.js),里面输入es6的代码:

let b = 1;
console.log(b);
const name = '张三';
console.log(name);
let c = '成功了么';
setTimeout(() => {
    console.log(c)
}, 200)

3、 初始化项目

1)打开终端命令提示符 进入工程目录(这里也就是es6文件夹)输入如下命令初始化项目:(这里用的npm,国内用户建议用cnpm不懂得可以移步至淘宝镜像使用)命令执行完成后会在根目录生成package.json文件。

npm init -y //-y是指表示全部默认,不需要一个一个敲回车

2)打开我们可以看到里面的内容(可以根据自己的需要进行修改,比如我们修改name的值。)

{
  "name": "es6",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}


三、全局安装babel工具

1)在终端中输入以下命令,

npm install -g babel-cli

2)虽然已经安装了babel-cli,只是这样还不能成功进行转换,我们还需要安装转换包才能成功转换。

npm install --save-dev babel-preset-es2015 babel-cli

3)安装完成后,我们可以看一下我们的package.json文件,已经多了devDependencies选项。

{
  "name": "es6",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "dev":"babel src --out-dir js"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "babel-cli": "^6.26.0",
    "babel-preset-es2015": "^6.24.1"
  }
} 


四、新建.babelrc

在项目根目录新建(.babelrc)文件输入如图所示代码:

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


五、现在你可以尽情转换了

终端输入如下命令:(babel 待转换路径/ --out-dir 转换后路径/)
我们这里是从src转换到js目录下

babel src --out-dir js

现在我们js目录下面就生成了编译后的js我们打开看一下(大功告成)
是不是每次这样输入一大串命令感觉很麻烦?
通过修改package.json里面的别名来实现编译 修改(“dev”:“babel src --out-dir js”)

{
  "name": "es6",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "dev":"babel src --out-dir js"
  },
  "author": "",
  "license": "ISC"
}

以后你只需要如下命令就可以编译了(是不是感觉很简单呢)

npm run dev

链接: https://fly63.com/article/detial/6509

es6 箭头函数的使用总结,带你深入理解js中的箭头函数

箭头函数是ES6中非常重要的性特性。它最显著的作用就是:更简短的函数,并且不绑定this,arguments等属性,它的this永远指向其上下文的 this。它最适合用于非方法函数,并且它们不能用作构造函数。

详解JavaScript模块化开发require.js

js模块化的开发并不是随心所欲的,为了便于他人的使用和交流,需要遵循一定的规范。目前,通行的js模块规范主要有两种:CommonJS和AMD

js解构赋值,关于es6中的解构赋值的用途总结

ES6中添加了一个新属性解构,允许你使用类似数组或对象字面量的语法将数组和对象的属性赋给各种变量。用途:交换变量的值、从函数返回多个值、函数参数的定义、提取JSON数据、函数参数的默认值...

ES6中let变量的特点,使用let声明总汇

ES6中let变量的特点:1.let声明变量存在块级作用域,2.let不能先使用再声明3.暂时性死区,在代码块内使用let命令声明变量之前,该变量都是不可用的,4.不允许重复声明

ES6的7个实用技巧

ES6的7个实用技巧包括:1交换元素,2 调试,3 单条语句,4 数组拼接,5 制作副本,6 命名参数,7 Async/Await结合数组解构

ES6 Decorator_js中的装饰器函数

ES6装饰器(Decorator)是一个函数,用来修改类的行为 在设计阶段可以对类和属性进行注释和修改。从本质上上讲,装饰器的最大作用是修改预定义好的逻辑,或者给各种结构添加一些元数据。

基于ES6的tinyJquery

Query作为曾经Web前端的必备利器,随着MVVM框架的兴起,如今已稍显没落。用ES6写了一个基于class简化版的jQuery,包含基础DOM操作,支持链式操作...

ES6 中的一些技巧,使你的代码更清晰,更简短,更易读!

ES6 中的一些技巧:模版字符串、块级作用域、Let、Const、块级作用域函数问题、扩展运算符、函数默认参数、解构、对象字面量和简明参数、动态属性名称、箭头函数、for … of 循环、数字字面量。

Rest/Spread 属性_探索 ES2018 和 ES2019

Rest/Spread 属性:rest操作符在对象解构中的使用。目前,该操作符仅适用于数组解构和参数定义。spread操作符在对象字面量中的使用。目前,这个操作符只能在数组字面量和函数以及方法调用中使用。

使用ES6让你的React代码提升到一个新档次

ES6使您的代码更具表现力和可读性。而且它与React完美配合!现在您已了解更多基础知识:现在是时候将你的ES6技能提升到一个新的水平!嵌套props解构、 传下所有props、props解构、作为参数的函数、列表解构

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!