FelHa
FelHa

Reputation: 1103

ESLint with Babel: plugin-proposal-class-properties not found declared in .eslintrc

ESLint server throws following error:

[Info - 11:43:42] Failed to load plugin '@babel/plugin-proposal-class-properties' declared in '.eslintrc.json': Cannot find module '@babel/eslint-plugin-plugin-proposal-class-properties'

I installed @babel/plugin-proposal-class-properties but ESLint server tries to load it from path: '@babel/eslint-plugin-plugin-proposal-class-properties' while package is installed here: '@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": {
  }
}

Why does ESLint try to load the plugin from the wrong path and how to fix it?

Upvotes: 5

Views: 3013

Answers (1)

Dolly
Dolly

Reputation: 2582

I recommend using the below approach:

Add .babelrc file:

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

Update .eslintrc file as below:

"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"
    },

Other Helpful articles:

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

Good Luck!

Upvotes: 3

Related Questions