具有ES6语法的Yeoman生成器

时间:2015-11-16 21:34:38

标签: yeoman ecmascript-6 babeljs yeoman-generator

我正在编写ES6并使用babel生成我的Yeoman生成器。问题在于,在编译成es5之后,渲染文件需要我触摸它。

基本生成器es6文件

'use strict'
import { NamedBase } from 'yeoman-generator'

export default class MyGenerator extends NamedBase {
  generateComponent () {
    console.log('Name passed - ' + this.name))
  }
}
编译后

然后我需要进入生成的文件并将最后一行从exports.default = MyGenerator;更改为module.exports = MyGenerator;以使其正常工作。

我缺少什么?

REF:我目前的回购:https://github.com/GantMan/irrigate/tree/7a897d4669e479cdd7b5509b1807e0b26d5c6658

2 个答案:

答案 0 :(得分:1)

这是由于Babel 6的改变。

您可以使用this plugin获取旧的export行为。

也可能值得与Babel社区讨论。这种变化非常重要。

答案 1 :(得分:0)

尽管西蒙的帖子在确定原因方面非常有帮助,但它并没有作为一种解决方案。我终于承认,任何ES5 JS都会简单地通过编译器,因此我可以将我的最后一行强制为module.exports = ScreenGenerator,将其留在我的源代码中。

我猜TL:DR; - 如果有1个小部件没有按照你的意愿进行编译,那么快速解决方法就是编写你想要编译的1部分。