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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 webpack2和vue2已经不是新鲜东西了,满大街的文章在讲解webpack和vue,但是很多内容写的不是...
    技术宅小青年阅读 11,600评论 4 43
  • Babel 入门指南 ​:warning: 注意:Babel 可以与很多构建工具(如 Browserify、Gru...
    静默虚空阅读 7,334评论 0 4
  • 随着时间的推移,浏览器对ES6支持度已经越来越高了,超过90%的 ES6 语法特性都实现了。虽然有些浏览器对ES6...
    无亦情阅读 7,590评论 0 6
  • 写在开头 先说说为什么要写这篇文章, 最初的原因是组里的小朋友们看了webpack文档后, 表情都是这样的: (摘...
    Lefter阅读 10,689评论 4 31
  • 忘记自拍,出门时匆忙,一天忙碌着过去。 组织活动最难,横店复习研讨会,周公总算出来陪了一餐,交稿子一篇,和董的合了...
    石默默阅读 3,068评论 0 0