NodeJS eslint -vscode的可选链接错误

chhqkbe1  于 2023-02-18  发布在  Node.js
关注(0)|答案(6)|浏览(944)

我在使用可选链时看到了红色下划线,但代码运行良好,因为我在节点14上
这是我的设置:

node 14.1.0
eslint "^6.8.0"

.eslintrc.js

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

wn9m85ua

wn9m85ua1#

您不再需要@babel/eslint-parser,因为eslint@^7.5现在支持可选的通道。
运行以下命令以更新项目中的eslint:

npm

npm install --save-dev eslint@^7.5

Yarn

yarn add -D eslint@^7.5

然后,确保您的配置如下所示:

.西班牙语

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

.埃斯林特. js

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

有关详细信息,请访问www.example.com。https://eslint.org/blog/2020/07/eslint-v7.5.0-released#optional-chaining-support for more information.

kupeojn6

kupeojn62#

您应该在eslint配置中使用@babel/eslint-parser(以前称为babel-eslint)。这允许您使用eslint来lint所有有效的Babel代码。eslint supports all ES2020 features as of version v7.2.0

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

然后在.eslintrc中执行以下操作:

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

t9aqgxwy3#

Node.js版本12以上的所有版本都支持可选链接操作符(ECMAScript 2020的一个特性)。

"parserOptions": {
    "ecmaVersion": 2020
}
58wvjzkj

58wvjzkj4#

首先,您应该有一个支持可选链接的ESLint解析器:
npm install -D @babel/eslint-parser
如果您遇到了对等依赖关系的问题,则通过将--legacy-peer-deps附加到命令来运行。
然后,您应该拥有支持可选链接的ESLint版本。这是发布版本(7.5.0):
npm install eslint@^7.5
通知ESLint服务器使用上面安装的解析器:

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

jvidinwx5#

ESLint并不包含Babel启用的所有JavaScript功能。
您可以使用babel-eslint

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

然后在.eslintrc中执行以下操作:

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

vu8f3i0k6#

如果你使用的是babel-eslint(自2021年以来已经弃用),请升级到@babel/eslint-parser,并确保你有eslint版本7或更高版本。
.eslintrc.json中,您需要以下配置:

"parser": "@babel/eslint-parser",
    "parserOptions": {
        "requireConfigFile": false,
        "presets": [
            "@babel/preset-env",
            "@babel/preset-react"
        ],
        "babelOptions": {
            "parserOpts": {
                "plugins": [ "jsx" ]
            }
        }
    },
    "plugins": [
        "prettier",
        "react-hooks"
    ],

"requireConfigFile": false,-如果您没有eslint配置文件"plugins": [ "jsx" ]-如果您使用jsx
"plugins": [ "typescript" ]-如果您使用 typescript
"plugins": [ "flow" ]-如果使用流

相关问题