神秘的 ESLint 解析错误

Mysterious ESLint Parsing Error

在以下代码的第 4 行,ESLint 给我一个解析错误:

Unexpected token =

我想知道为什么会这样?代码运行正常。我做错了什么?

import { Component, PropTypes } from 'react';

export default class MainApp extends Component {
  static propTypes = {
    children: PropTypes.any.isRequired
  }

  componentWillMount() {
    require('./styles/main.styl');
  }

  render() {
    return (
      <div>
        {this.props.children}
      </div>
    );
  }
}

类 中不能有属性,只能有方法。

参考:http://www.2ality.com/2015/02/es6-classes-final.html#inside_the_body_of_a_class_definition

我能够通过以下方式解决此问题:

1) 安装babel-eslint

$ npm i --save-dev babel-eslint

$ yarn add babel-eslint --dev

2) 配置 ESLint 以使用 babel-eslint 作为解析器

只需将 "parser": "babel-eslint", 添加到您的 .eslintrc 文件。

示例 .eslintrc 以使用 babel-eslint 和带有一些自定义规则的 airbnb 配置:

{
  "parser": "babel-eslint",
  "extends": "airbnb",
  "rules": {
    "arrow-body-style": "off",
    "no-console": "off",
    "no-continue": "off"
  }
}