我想在我的Gruntfile中使用ES6和ES7。原因是我想写一个包含git-repository module的任务。从文档中可以看出,该模块仅在ES6和ES7中可用,我希望尽可能简单地集成该模块。有没有办法可以在我的Gruntfile中使用ES6和ES7 - 像babel grunt
这样的东西?不幸的是,我在谷歌上找不到任何东西,因此我希望你能帮助我。
提前谢谢! :-)
答案 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功能集, co
是async...await
的绝佳替代。