初学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入门 *********************************/