2

运行以下 lint 命令时收到弃用警告

eslint src/js/**/*.js src/js/**/*.jsx webpack.config.js --quiet

警告:

DeprecationWarning: [eslint] 'ecmaFeatures' 配置文件属性已被弃用,并且没有效果。(在 /Users/me/Documents/my-project/node_modules/eslint-config-airbnb/rules/react.js 中找到

这似乎是在抱怨eslint-config-airbnbreact-a11y.js和下列出的文件react.js。这些文件确实包含顶级配置

ecmaFeatures: {
  jsx: true
}

这似乎是不正确的:github issuedocs。但是,似乎(docsnode_modules应该被 eslint 忽略,无论如何,为了明确起见,我已将以下内容添加到我的.eslintignore

node_modules/**/*.*
node_modules 

为什么我会收到关于 node_modules 中问题的警告?我唯一能想到的是忽略列表不包括 eslint 本身的配置,但这似乎很牵强,它可能会警告我 node_modules 中每个 eslintrc 文件的每个过期或错误配置?

如果它是相关的,我的.eslintrc.json

{
  "env": {
    "es6": true,
    "browser": true,
    "node": true,
    "jest": true
  },
  "extends": ["airbnb", "prettier", "prettier/react"],
  "parserOptions": {
    "ecmaVersion": 2016,
    "sourceType": "module",
    "ecmaFeatures": {
      "experimentalObjectRestSpread": true,
      "jsx": true
    }
  },
  "plugins": ["prettier", "react"],
  "parser": "babel-eslint",
  "rules": {
    "no-param-reassign": 0
  }
}

我该如何解决这个问题?

编辑:

升级到eslint-config-airbnb@latest看起来顶级ecmaFeatures问题已经解决)会导致看起来更严重的错误:

/Users/me/Documents/my-project/node_modules/eslint-config-airbnb/rules/react.js:
  Configuration for rule "react/jsx-boolean-value" is invalid:
  Value "never,[object Object]" should NOT have more than 1 items.

Referenced from: /Users/me/Documents/my-project/node_modules/eslint-config-airbnb/index.js
Referenced from: /Users/me/Documents/my-project/.eslintrc.json
Error: /Users/me/Documents/my-project/node_modules/eslint-config-airbnb/rules/react.js:
  Configuration for rule "react/jsx-boolean-value" is invalid:
  Value "never,[object Object]" should NOT have more than 1 items.

Referenced from: /Users/me/Documents/my-project/node_modules/eslint-config-airbnb/index.js
Referenced from: /Users/me/Documents/my-project/.eslintrc.json
    at validateRuleOptions (/Users/me/Documents/my-project/node_modules/eslint/lib/config/config-validator.js:113:15)
    at Object.keys.forEach.id (/Users/me/Documents/my-project/node_modules/eslint/lib/config/config-validator.js:153:9)
    at Array.forEach (native)
    at validateRules (/Users/me/Documents/my-project/node_modules/eslint/lib/config/config-validator.js:152:30)
    at Object.validate (/Users/me/Documents/my-project/node_modules/eslint/lib/config/config-validator.js:230:5)
    at loadFromDisk (/Users/me/Documents/my-project/node_modules/eslint/lib/config/config-file.js:549:19)
    at load (/Users/me/Documents/my-project/node_modules/eslint/lib/config/config-file.js:592:20)
    at configExtends.reduceRight (/Users/me/Documents/my-project/node_modules/eslint/lib/config/config-file.js:421:36)
    at Array.reduceRight (native)
    at applyExtends (/Users/me/Documents/my-project/node_modules/eslint/lib/config/config-file.js:403:28)
4

1 回答 1

2

更新 babel-preset-react 和 eslint-plugin-react,为我解决了这个问题。如果这引发了新的错误,您将被迫更新与 eslint 相关的几乎所有内容。

于 2017-10-13T09:16:53.113 回答