1

我有一个非常小的项目,只有一个 .html 文件和一个 .js 文件。我使用 asyn/await 函数的问题,所以我需要将其转换为 es5 以确保一切正常。

因此,我的 .html 文件如下所示:

<html>
 <head>
 </head>
 <body>
   ...//page markup

   <script src="dist/myCodeAsES5.js"></script>

   <script>
    var obj = new MyClass();
    obj.calculate();
   </script>

 </body>
</html>

这里是我的 src.js

class MyClass{

    constructor(){
        this.calculate = async function () {
           await func1();
        }
    }

    async function func1() {
      for (var i = 0; i < 3; i++) {
         await func2(); // await in loop until func2() completed 
      }
    }

    async function func2() {
       for (var i = 0; i < 10; i++) {
         await func3(); //wait until func3 and then continue looping
       }
    }

    function func3() {
      return new Promise(resolve => setTimeout(resolve, 1000));
    }


}

现在的主要问题- 如何将其转换为 es5以便它可以在 Internet Explorer 中 100% 工作。我已经阅读了很多关于“babel”的内容,但我发现的所有内容都是不可理解或过时的。那么有人可以写一个简短的分步指南如何安装和编译那个小项目吗?

4

1 回答 1

2

假设您想快速运行脚本以使用 babel 转译您的 es5 代码,请按照以下说明操作:

  • 您要做的第一件事是设置一个小节点项目。如果您从未设置过节点项目转到: https ://nodejs.org/en/download/

  • 一旦你在全球范围内拥有 npm,你就可以进入你的项目文件夹并输入: npm init 这将为你创建一个 package.json 文件。

  • 转到:https ://babeljs.io/docs/setup/#installation 并单击CLI并按照所有提到的步骤进行操作。

  • 确保为 babel 安装正确的预设以转译异步等待。您将需要 es2015 和 stage3 预设以及运行时插件。

    • http://babeljs.io/docs/plugins/preset-es2015/#install
    • http://babeljs.io/docs/plugins/preset-stage-3/#install
    • https://babeljs.io/docs/plugins/transform-runtime/#installation
    • 使用 Babel.js签出 Transpile Async Await 提案?以获得更简单的设置。
于 2017-01-15T16:29:48.557 回答