【发布时间】:2018-01-21 20:54:52
【问题描述】:
我尝试使用 facebook 的 Regenerator 将 ES6 代码转换为 ES5 代码。 我需要转换的代码是由 React-ace 编辑器生成的,它是一个字符串。 Regenerator 无法识别字符串,只是将它们原样返回。
我尝试使用eval()和new Function(),这两个函数都会在传入regenerator.compile("whatever code I need to compile").code时执行,返回的值就是返回值执行的代码。
有没有办法将 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; }");
但这只会把字符串还给我
【问题讨论】:
-
请在这里分享您的代码
-
regenerator 仅将生成器和异步函数转换为 ES5,而不是任何其他 ES6 功能。
-
为第一次没有共享代码道歉,这是我关于堆栈溢出的第一个问题
标签: javascript ecmascript-6 ecmascript-5 file-conversion