代码之家  ›  专栏  ›  技术社区  ›  Hoires Zhu

当代码为字符串时,重新编译Javascript ES6到ES5代码

  •  1
  • Hoires Zhu  · 技术社区  · 8 年前

    我尝试使用facebook的再生器将ES6代码转换为ES5代码。

    有没有办法将React ace(或任何浏览器文本编辑器)生成的字符串转换为ES5代码?是否有其他库允许您将ES6语法转换为ES5?

    局部函数声明的工作示例:

    let testFunction = (b) => {
    
      let a = (c) => {
        return c
      }
    
      return b;
    }
    
    let regenCode = require('regenerator').compile(testFunction).code;
    console.log(regenCode);
    

    function testFunction(b) {
    
       var a = function (c) {
         return c;
       } 
    
       return b;
    }
    

    正在尝试:

    let regenCode = require('regenerator').compile("let testFunction = (b) => { let a = (c) => { return c } return b; }");
    

    但这只会把绳子还给我

    1 回复  |  直到 8 年前
        1
  •  0
  •   sgtdck    8 年前

    AST ,而不是字符串。

    Regenerator documentation :

    AST转换:

    var recast = require("recast");
    var ast = recast.parse(es6Source);
    ast = require("regenerator").transform(ast);
    var es5Source = recast.print(ast);
    

    var recast = require("recast");
    var ast = recast.parse("let testFunction = (b) => { let a = (c) => { return c }; return b; }");
    ast = require("regenerator").transform(ast);
    var es5Source = recast.print(ast);