eslint - Optional chaining error with vscode

痴心易碎 提交于 2021-01-26 03:10:21

问题


I am seeing a a red underline when I'm using an optional chain, but the code runs fine as I am on node 14

Here's my setup:

node 14.1.0
eslint "^6.8.0"

.eslintrc.js

module.exports = {
    "env": {
        "node": true
    },
    "extends": [
        "eslint:recommended",
    ],
    "parserOptions": {
        "sourceType": "module",
        "ecmaVersion": 2020
    },
    "rules": {
    },
}


回答1:


You should use babel-eslint with your eslint config. This allows you to lint ALL valid Babel code with eslint. Currently eslint does not support all ES2020 features but a draft is proposed here

Run:

$ npm install babel-eslint --save-dev
# or
$ yarn add babel-eslint -D

Then in your .eslintrc do:

{
   "parser": "babel-eslint"
}

UPDATE 24/07/2020 Support was released in version (v7.2.0) here.

UPDATE 20/11/2020 NOTE: babel-eslint is now @babel/eslint-parser and has moved into the Babel monorepo.

$ npm install @babel/eslint-parser --save-dev
# or
$ yarn add @babel/eslint-parser -D

Then in your .eslintrc do:

{
  parser: "@babel/eslint-parser",
}



回答2:


You no longer need @babel/eslint-parser as eslint@^7.5 now supports optional chanining.

Run the following to update eslint within your project:

npm

npm install --save-dev eslint@^7.5

yarn

yarn add -D eslint@^7.5

And then, ensure your config is as follows:

.eslintrc

{
  "parserOptions": {
    "ecmaVersion": 2020
  }
}

.eslint.js

module.exports = {
    "parserOptions": {
        "ecmaVersion": 2020
    }
}

See https://eslint.org/blog/2020/07/eslint-v7.5.0-released#optional-chaining-support for more information.




回答3:


Not all JavaScript features enabled by Babel are included in ESLint.

You can use babel-eslint though:

$ npm install @babel/eslint-parser --save-dev
# or
$ yarn add @babel/eslint-parser -D

Then in your .eslintrc do:

{
  parser: "@babel/eslint-parser",
}



回答4:


First, you should have a ESLint parser that supports the optional chaining:

npm install -D @babel/eslint-parser

If you're facing issues with peer dependencies then run by appending --legacy-peer-deps to the command.

Then, you should have the ESLint version that supports the optional chaining. This is that release version(7.5.0):

npm install eslint@^7.5

Tell your ESLint server to use the above-installed parser:

{
  "parserOptions": {
    "ecmaVersion": 2020
  }
  ...
}


来源:https://stackoverflow.com/questions/61628947/eslint-optional-chaining-error-with-vscode

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!