ESLint React Parsing Error

时间:2016-05-01 16:35:07

标签: meteor reactjs eslint

所以我按照guide.meteor.com上的说明设置了我的package.json eslintConfig。

"eslintConfig": {
  "plugins": [
    "meteor"
  ],
  "extends": [
    "airbnb/base",
    "plugin:meteor/recommended"
  ],
  "rules": {
    "meteor/eventmap-params": [
      2,
      {
        "templateInstanceParamName": "instance"
      }
    ],
    "import/no-unresolved": [
      2,
      {
        "ignore": [
          "^meteor/"
        ]
      }
    ],
    "semi": [
      "error",
      "never"
    ]
  }
}

在我尝试使用React之前一切正常。

main.js:

Meteor.startup(() => {
  render(<App />, document.getElementById('render-target'))
})

抛出错误:[eslint] Parsing error: Unexpected token <

我有反应插件:

"devDependencies": {
  "eslint": "^2.9.0",
  "eslint-config-airbnb": "^8.0.0",
  "eslint-plugin-import": "^1.6.1",
  "eslint-plugin-jsx-a11y": "^1.0.4",
  "eslint-plugin-meteor": "^3.5.2",
  "eslint-plugin-react": "^5.0.1"
}

我尝试过关注Google的示例,但没有一个帮助过。我已经尝试将'react'和'eslint-plugin-react'添加到插件位并且没有任何改变。我很惊讶,流星指南的ESLint部分没有提供解决方案。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

您不需要安装babel-eslint。 Espree(本机ESLint解析器)完全支持ES6,ES7和Object Rest / Spread。 ESLint停止解析文件的原因是因为您尚未启用jsx,因此它会将其视为不正确的语法。

{
  "ecmaFeatures": {
    "ecmaVersion": 6,
    "sourceType": "module",
    "jsx": true
  }
}

将上面的代码段添加到您的配置文件中,它应该开始工作。有关详细信息,请参阅Specifying Parser Options

答案 1 :(得分:1)

安装babel-eslint.eslintrc添加"parser": "babel-eslint"。你错过了ES6的转换,所以eslint只是崩溃。