ES6入门篇之将ES6用bable-cli转码至ES5

96
圭宁_2ce3
0.1 2017.06.12 10:01* 字数 688

       初学ES6,前端发展如此之快,ES6很好,但是很多浏览器是不支持的,所以我们有时候会将使用ES6编写的js文件通通转码至ES5(恨不得转到ES3)。接下来是自己按照官方指引操作的。毫无原创度。权当自己的课后小甜点(强行加深映像)。

1,首先你得有node和npm(cnpm)环境。这块就不多说了。

2,开始新建一个空项目,并且cd到当前文件夹下。首先初始化项目 npm init 然后一直回车(也可以输入必要信息),

3,安装babel至项目本地,cnpm install --save-dev babel-cli (这里会自动更新你的pakeage.json的"devDependencies")

4,光安装babel是不够的,还要安装一个叫转码规则的插件,cnpm install --save-dev babel-perset-latest

5,光装好了这两个包是不够的,在项目的根目录下还需要一个.babelrc的文件,这是babel的启动文件。里面的内容只需要 

{  

    "presets": ["latest"]

 }

6,好了我们在项目根目录下穿件一个src目录,src下面再穿件一个js文件夹,js文件夹里穿件一个test.js,写上我们的测试代码

```lets=[1,2,3,4];

letresult=s.map(x=>x*2);

console.log(result);```

7,等等,我们再去我们的pakeage.json里的"script"中加上"build":"babel src -d lib"

8,然后我们执行 npm run build

9,然后你就在你的项目中发现多了一个lib文件,这里是将src里的所有js文件全部转码到了es5,在lib中找到test.js打开发现转码成功

```"use strict";

vars=[1,2,3,4];

varresult=s.map(function(x) {

    returnx*2;

});

console.log(result);```

注意:Babel 默认只转换新的 JavaScript 句法(syntax),而不转换新的 API,比如Iterator、Generator、Set、Maps、Proxy、Reflect、Symbol、Promise等全局对象,以及一些定义在全局对象上的方法(比如Object.assign)都不会转码。

举例来说,ES6 在Array对象上新增了Array.from方法。Babel 就不会转码这个方法。如果想让这个方法运行,必须使用babel-polyfill,为当前环境提供一个垫片。

安装命令如下。

$ npm install--save babel-polyfill

然后,在脚本头部,加入如下一行代码。

import'babel-polyfill';// 或者require('babel-polyfill');

Babel 默认不转码的 API 非常多,详细清单可以查看babel-plugin-transform-runtime模块的definitions.js文件。

/**************************详情请参考 阮一峰老师的ES6入门 *********************************/

ES6学习笔记
Web note ad 1