首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有将包含es6的字符串转换为es5的方法?

有没有将包含es6的字符串转换为es5的方法?
EN

Stack Overflow用户
提问于 2016-04-22 04:48:09
回答 2查看 618关注 0票数 1

我正在创建一个应用程序,用户将输入es6代码,我的应用程序将返回等效的es5。我知道babel将es6转换为es5,但是否有任何方法将其用于包含es6代码的字符串。

例如输入:

代码语言:javascript
复制
"[1, 2, 3].map(n => n * 2)"

输出:

代码语言:javascript
复制
"[1, 2, 3].map(function(n) { return n * 2; }, this)"
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-22 05:55:42

这就是所谓的“转移”。Transpilers是将用一种语言编写的代码转移到同一抽象级别的另一种语言的程序。(来自维基百科)

对于ES6 to ES5,正如您在问题中提到的,有一个名为巴贝尔的工具。

来自巴贝尔文件

var babel =需要量(“babel-core”); Babel.transform(代码,选项) 转换传入的代码。使用生成的代码、源映射和AST返回对象。 Babel.transform(代码,选项) // => { code,map,ast } 示例 变量结果= babel.transform("code();",选项);result.code;result.map;result.ast;

票数 3
EN

Stack Overflow用户

发布于 2016-04-22 07:00:07

您需要同时安装babel-core和babel-预设-2015。

之后

代码语言:javascript
复制
var babel = require('babel-core');

如果进入节点

代码语言:javascript
复制
babel.transform("[1, 2, 3].map(n => n * 2)", {presets: ["es2015"]}).code

你会得到

代码语言:javascript
复制
'"use strict";\n\n[1, 2, 3].map(function (n) {\n  return n * 2;\n});'

结果。显然,这有新的行和“使用严格”添加,您可能不想,所以您将需要深入研究babel选项文档,看看它是否可以按照您想要的格式,或者自己做。

编辑

babel预置的工作方式现在已经改变了(参见关于预置-2015年度npm的通知关于如何使用预置-env的信息)。修改后的步骤如下:

代码语言:javascript
复制
npm install babel-core babel-preset-env -S

然后运行节点并输入

代码语言:javascript
复制
babel.transform("[1, 2, 3].map(n => n * 2)", {presets: ["env"]}).code

你会得到

代码语言:javascript
复制
'"use strict";\n\n[1, 2, 3].map(function (n) {\n  return n * 2;\n});'

和以前一样。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36785041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档