下面的代码:

import React from 'react';
import { Link } from 'react-router';
import { View, NavBar } from 'amazeui-touch';

import * as Pages from '../components';

const {  Home, ...Components } = Pages;

我得到这个eslint错误:

7:16  error  Parsing error: Unexpected token .. Why?

这是我的eslint配置:

{
  "extends": "airbnb",
  "rules": {
    /* JSX */
    "react/prop-types": [1, {
      "ignore": ["className", "children", "location", "params", "location*"]
    }],
    "no-param-reassign": [0, {
      "props": false
    }],
    "prefer-rest-params": 1,
    "arrow-body-style": 0,
    "prefer-template": 0,
    "react/prefer-stateless-function": 1,
    "react/jsx-no-bind": [0, {
      "ignoreRefs": false,
      "allowArrowFunctions": false,
      "allowBind": true
    }],
  }
}

.... .... 有什么问题吗?


当前回答

React + Firebase函数

转到:functions -> .eslintrc.js

添加它- parserOptions: { ecmaVersion: 8, 的,

module.exports = {
  root: true,
  env: {
    es6: true,
    node: true,
  },
  parserOptions: {
    ecmaVersion: 8,
  },
  extends: ["eslint:recommended", "google"],
  rules: {
    quotes: ["error", "double"],
  },
};

其他回答

在我的情况下(我使用Firebase云函数),我打开.eslintrc.json并更改:

"parserOptions": {
  // Required for certain syntax usages
  "ecmaVersion": 2017
},

to:

"parserOptions": {
  // Required for certain syntax usages
  "ecmaVersion": 2020
},

我必须将ecmaVersion更新为“最新”

"parserOptions": {
    "parser": "@babel/eslint-parser",
    "sourceType": "module",
    "ecmaVersion": "latest",
    "ecmaFeatures": {
      "jsx": true,
      "experimentalObjectRestSpread": true
    },
    "requireConfigFile": false
  },

由于您的开发环境和ESLint当前的解析能力与正在进行的JavaScripts ES6~7的变化不兼容,在ESLint解析中出现意外的令牌错误。

在.eslintrc中添加"parserOptions"属性对于特定的情况已经不够了,比如使用

static contextTypes = { ... } /* react */

在ES6类中,因为ESLint目前无法自己解析它。这种特殊的情况会抛出一个错误:

error Parsing error: Unexpected token =

解决方案是让ESLint通过兼容的解析器来解析,即@babel/ ESLint -parser或babel- ESLint用于v7以下的babel版本。

添加:

"parser": "@babel/eslint-parser"

在你的.eslintrc文件中运行npm install @babel/eslint-parser——save-dev或者yarn add -D @babel/eslint-parser。

请注意,从React ^16.3开始的新的Context API有一些重要的变化,请参考官方指南。

ESLint 2。x实验性地支持ObjectRestSpread语法,您可以通过在.eslintrc: docs中添加以下内容来启用它

"parserOptions": {
  "ecmaVersion": 6,
  "ecmaFeatures": {
    "experimentalObjectRestSpread": true
  }
},

ESLint 1。X本身不支持扩散操作符,解决这个问题的一种方法是使用babel-eslint解析器。最新的安装和使用说明在项目自述中。

我使用eslint进行云功能(开发环境:flutter 2.2.3)。

在我的情况下,.eslintrc.json不存在,所以我必须更新.eslintrc.js文件,包括parserOptions: {"ecmaVersion": 2020,},属性在文件的末尾。我更新的.eslintrc.js文件是这样的:

module.exports = {
  root: true,
  env: {
    es6: true,
    node: true,
  },
  extends: [
    "eslint:recommended",
    "google",
  ],
  rules: {
    quotes: ["error", "double"],
  },
  
  // Newly added property
  parserOptions: {
    "ecmaVersion": 2020,
  },
};