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

时间:2016-10-22 14:18:28

标签: node.js git gruntjs ecmascript-6 ecmascript-next

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

提前谢谢! :-)

1 个答案:

答案 0 :(得分:2)

通常您可能希望使用构建工具进行转换,因此这是“谁将构建构建工具”问题。

NPM上的公共包通常只在具有Node不支持的功能集的ES.next或ES6中可用。 git-repository也不例外。它肯定已经在包中编译了代码,并且可以在没有Babel的情况下使用。

由于该软件包是使用babel-plugin-transform-runtime进行转换的,因此需要babel-polyfill才能生效。

文档仅使用async...await作为示例,因为它适合工作流程。 async函数使用promises,在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'))
  ...
);
对于不需要转换程序的Node ES6功能集,

coasync...await的绝佳替代。