如何在我的 Gruntfile 中使用 ES6 和 ES7

How to use ES6 and ES7 in my Gruntfile

我想在我的 Gruntfile 中使用 ES6 和 ES7。原因是我想写一个任务,其中包含git-repository module。从文档中可以看出,该模块仅在 ES6 和 ES7 中可用,我希望尽可能轻松地集成该模块。有没有一种方法可以让我在我的 Gruntfile 中也使用 ES6 和 ES7 - 像 babel grunt 这样的东西?不幸的是,我在 Google 上没有找到任何东西,因此我希望你能帮助我。

提前致谢! :-)

通常您可能想使用构建工具进行转译,所以这是一个 'who will build a build tool' 问题。

NPM 上的 public 包仅在 ES.next 或 ES6 中可用且具有 Node 不支持的功能集是不常见的。 git-repository 也不例外。包里肯定有转译代码,不用Babel也能用。

因为包是用 babel-plugin-transform-runtime 转译的,它需要 babel-polyfill 才能工作。

文档使用 async...await 仅作为示例,因为它适合工作流程。 async 函数使用承诺,在 ES5/ES6 中它将是

require('babel-polyfill');

Repo.open('./example', { init: true })
.then(repo =>
  repo.setRemote('origin', 'https://github.com/user/example.git')
  .then(() => repo.add('--all .'))
  .then(() => repo.commit('Commit message'))
  ...
);

coasync...await 的绝佳替代品,适用于不需要转译器的 Node ES6 功能集。