Babel 6预设选择让babel工作

时间:2015-12-07 22:26:18

标签: javascript ecmascript-6 babeljs ecmascript-7

我将babel 6与react插件一起使用,并按照文档说明设置了transile过程。我已阅读以便做出反应,我需要使用es2015并做出反应preset。最初使用这两个预设都可以正常工作。

但是当我从babel的website(属性初始值设定项)中复制了一个示例代码时  测试新的语言功能我在编写下面的代码时遇到了错误,因此不再可能转换代码。

// The ES6+ way
class Video extends React.Component {
    static defaultProps^= { // this is line 42 and ^ the column where error occurs
        autoPlay: false,
        maxLoops: 10,
    }

    static propTypes = {
        autoPlay: React.PropTypes.bool.isRequired,
        maxLoops: React.PropTypes.number.isRequired,
        posterFrameSrc: React.PropTypes.string.isRequired,
        videoSrc: React.PropTypes.string.isRequired,
    }

    state = {
        loopsRemaining: this.props.maxLoops,
    }
}

Warning: [...]components/sectorList.js: Unexpected token (42:24) Use --force to continue.

经过一段时间的调试,我通过加载babel的stage-0预设来解决这个问题。但这只是运气。

所以,我无法找到答案的问题是:

如何确定正确的预设集合的正确方法。

或者是一个意外的令牌......主要是警告缺少预设?

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

如果您查看预设的babel页面,它会列出所有包含的转换。在这种情况下,您使用的是类属性,该属性目前处于第1阶段,因此包含在stage 1 preset中。

在ES2015中,您可以使用构造函数来设置默认值。