Babel 6 预设选择让 babel 工作

Babel 6 preset selection to get babel working

我将 babel 6 与 react 插件一起使用,并按照文档说明设置转译过程。我读过要让 React 工作,我需要使用 es2015 和 React 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 预设解决了这个问题。但这只是运气。

所以我找不到答案的问题是:

如何判断正确的预置集合的正确方法。

或者是意外标记...警告主要是缺少预设的通知?

感谢您的帮助

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

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