带Babel的ESLint:未在.eslintrc中声明的plugin-proposal-class-properties属性

时间:2020-10-21 09:52:41

标签: javascript babeljs eslint

ESLint服务器抛出以下错误:

[Info-11:43:42]无法加载插件 在中声明的“ @ babel / plugin-proposal-class-properties” '.eslintrc.json':找不到模块 '@ babel / eslint-plugin-plugin-proposal-class-properties'

我安装了@babel/plugin-proposal-class-properties,但是ESLint服务器试图从路径'@babel/eslint-plugin-plugin-proposal-class-properties'加载它,而软件包安装在这里:'@babel/plugin-proposal-class-properties'

package.json:

{
  ...
  "dependencies": {},
  "devDependencies": {
    "@babel/core": "^7.12.3",
    "@babel/eslint-parser": "^7.12.1",
    "@babel/eslint-plugin": "^7.12.1",
    "@babel/plugin-proposal-class-properties": "^7.12.1",
    "eslint": "^7.11.0",
    "eslint-config-airbnb-base": "^14.2.0",
    "eslint-plugin-import": "^2.22.1"
  }
}

.eslintrc.json

{
  "extends": ["airbnb-base"],
  "parser": "@babel/eslint-parser",
  "parserOptions": {
    "sourceType": "module",
    "allowImportExportEverywhere": false,
    "requireConfigFile": false
  },
  "plugins": ["@babel", "@babel/plugin-proposal-class-properties"],
  "rules": {
  }
}

ESLint为什么尝试从错误的路径加载插件以及如何修复?

1 个答案:

答案 0 :(得分:1)

我建议使用以下方法:

添加.babelrc文件:

{
    "presets": ["@babel/env"],
    "plugins": ["@babel/plugin-proposal-class-properties"] //<-- Add your babel plugin's here
}

更新.eslintrc文件如下:

"extends": [
        "airbnb-base",
        "eslint:recommended"
    ],
...
"parser": "babel-eslint",
...
"parserOptions": {
        "sourceType": "module",
        "allowImportExportEverywhere": false,
        "babelOptions": {
            "configFile": "./babelrc" //<---here
          }
    }
...
"plugins": [
    "@babel",
  ],
...
"rules": {
        "react/display-name": 1,
        "no-unused-vars": "warn"
    },

其他有用的文章:

https://github.com/babel/babel-eslint/issues/818

https://github.com/babel/babel/tree/main/eslint/babel-eslint-parser#additional-parser-configuration

Declaring babel plugins for @babel/eslint-parser in .eslintrc

祝你好运!