• 使用babel把es6代码转成es5代码


    第一步:创建一个web项目

    使用命令:npm init

    这个命令的目的是生成package.json.

    执行第二步中的命令后生成的package.json的文件的内容是:

    {
      "name": "babel_learning",
      "version": "1.0.0",
      "description": "learning babel",
      "main": "index.js",
      "scripts": {
        "test": "echo "Error: no test specified" && exit 1"
      },
      "author": "qin <123@qq.com>",
      "license": "ISC",
      "devDependencies": {
        "babel-cli": "^6.26.0",
        "babel-preset-latest": "^6.24.1",
        "babel-preset-react": "^6.24.1",
        "babel-preset-stage-2": "^6.24.1"
      }
    }

    第二步:

    使用下面的命令生成babel转码所需的js文件:

    $ npm install babel-cli      注意这里我没有带-g这个参数,主要是想在本地,不想全局的。

    # 最新转码规则
    $ npm install --save-dev babel-preset-latest
    
    # react 转码规则
    $ npm install --save-dev babel-preset-react
    
    # 不同阶段语法提案的转码规则(共有4个阶段),选装一个
    $ npm install --save-dev babel-preset-stage-0
    $ npm install --save-dev babel-preset-stage-1
    $ npm install --save-dev babel-preset-stage-2
    $ npm install --save-dev babel-preset-stage-3

    第三步:创建.babelrc 文件:
    该文件有presets这里是转码规则。
    plugins这里指插件。
    文件的内容如下所示:
    {
      "presets": [
        "latest",
        "react",
        "stage-2"
      ],
      "plugins": []
    }
    该测试项目的目录结构是:

    example.js的代码如下:
    [1,2,3].map(x => x*x);
    console.log(`hello
    world
    longlive`);
    

      最后转成example_compile.js的文件的代码如下:

    "use strict";
    
    [1, 2, 3].map(function (x) {
      return x * x;
    });
    console.log("hello
    world
    longlive");



    最后这步非常最要因为我按照阮一峰老师的es6中的教程运行命令根本不行,这里有可能我的babel-cli是6版本的。
    注意我这里用了npx
    D:materialDesignLearnabel_learning>npx babel example.js //把exaple.js中的es6代码转成es5形式的代码
    npx: installed 1 in 2.739s
    Path must be a string. Received undefined
    D:materialDesignLearnabel_learning
    ode_modulesabel-cliinabel.js
    "use strict";
    
    [1, 2, 3].map(function (x) {
      return x * x;
    });
    
    
    D:materialDesignLearnabel_learning>example.js
    
    D:materialDesignLearnabel_learning>npx babel example.js -o example_comple.js  //把exaple.js转成es5的代码输入到example_compile.js文件中。
    npx: installed 1 in 4.476s
    Path must be a string. Received undefined
    D:materialDesignLearnabel_learning
    ode_modulesabel-cliinabel.js
    
    D:materialDesignLearnabel_learning>npx babel example.js
    npx: installed 1 in 4.7s
    Path must be a string. Received undefined
    D:materialDesignLearnabel_learning
    ode_modulesabel-cliinabel.js
    "use strict";
    
    [1, 2, 3].map(function (x) {
      return x * x;
    });
    console.log("hello
    world
    longlive");
    
    
    D:materialDesignLearnabel_learning>npx babel example.js -o example_comple.js
    npx: installed 1 in 4.35s
    Path must be a string. Received undefined
    D:materialDesignLearnabel_learning
    ode_modulesabel-cliinabel.js
    
    D:materialDesignLearnabel_learning>example_comple.js
    
    D:materialDesignLearnabel_learning>
    

      

    在文章的结束说一下babel-cli的babel-node可以直接运行es6的代码,但是也要在前面带npx

    D:materialDesignLearnabel_learning>npx babel-node
    npx: installed 1 in 5.09s
    Path must be a string. Received undefined
    D:materialDesignLearnabel_learning
    ode_modulesabel-cliinabel-node.js
    > console.log([1,2,3].map(x=>{console.log(x*x);}));//这是es6代码
    1
    4
    9
    [ undefined, undefined, undefined ]
    undefined
    > [1,2,3].map(x=>x*x);//这也是es6代码
    [ 1, 4, 9 ]//es6代码的返回结果。
    >
    

      




  • 相关阅读:
    OJ推荐【转】
    Eclipse插件推荐:UCDetector: Unnecessary Code Detector
    Android工程目录及其作用简介
    Source not found The JAR file …has no source attachment.
    Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log for stack trace.
    Microsoft Visual C++ Runtime error解决方法
    Windows程序设计之Hello,Windows 98程序的声音调试记录
    没有谁是躺着成为谁的【转载】
    下一个7年,我是谁?【转载】
    UEditor编辑器使用教程 百度经验
  • 原文地址:https://www.cnblogs.com/1540340840qls/p/8534973.html
Copyright © 2020-2023  润新知