美文网首页
ES6入门篇之将ES6用bable-cli转码至ES5

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

作者: 圭宁_2ce3 | 来源:发表于2017-06-12 10:01 被阅读0次

           初学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入门篇之将ES6用bable-cli转码至ES5

          本文链接:https://www.haomeiwen.com/subject/odzkqxtx.html