node.js - 如何将ES2017转换为ES5

标签 node.js babeljs ecmascript-2017 babel-polyfill

我有一个带有 async/await 的 es2017 代码,我想将其转换为 es5,以便大多数 Node.js 版本都支持它。

我当前的 .babelrc 文件如下所示:

{
    "presets": ["es2015", "es2016", "es2017"]
}

所以我正在将 es2017 转换为 es2016,从 es2016 转换为 es2015,从 es2015 转换为 es5。

当我在使用 babel src -d dist -s 构建代码后尝试运行代码时我收到错误消息:ReferenceError: regeneratorRuntime is not defined

如何将es2017代码转换为es5?我想稍后发布代码并使其可由 Node.js v4 及更高版本使用。

最佳答案

感谢@Bergi,我找到了解决此 ReferenceError: regeneratorRuntime is not Defined 错误的方法。

我将 transform-runtime 插件添加到我的 .babelrc

现在我的 .babelrc 是:

{
    "presets": ["es2015", "es2016", "es2017"],
    "plugins": ["transform-runtime"]
}

现在没有任何错误,并且工作正常。

关于node.js - 如何将ES2017转换为ES5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44412882/

相关文章:

javascript - 异步/等待模拟

javascript - 从嵌套的 async/await 函数中捕获错误

node.js - freenom API 未进行身份验证

json - Heroku 上的 BabelJs : Couldn't find preset "env" relative to directory "/app"

javascript - 如何安装 babel-cli babel-preset-react

reactjs - 在 symfony 中为 @babel/plugin-proposal-class-properties 启用 classProperties

javascript - async 函数 + await + setTimeout 的组合

Node.js提示 '>' cannot show in eshell

javascript - Node.js 监听动态创建的对象上的事件

mysql - 如何在EXPRESSJS/MYSQL中获取父子关系?