create project with "react-scripts": "^4.0.3" boilerplate and in order to include eslintrc.js file in the react with typescript project,I have tried eslint --init and it creates a default eslintrc.js and below is the content.
having eslint v 7.32.0 in global
eslintrc.js
module.exports = {
env: {
browser: true,
es2021: true,
},
extends: [
'eslint:recommended',
'plugin:react/recommended',
'plugin:@typescript-eslint/recommended',
],
parser: '@typescript-eslint/parser',
parserOptions: {
ecmaFeatures: {
jsx: true,
},
ecmaVersion: 12,
sourceType: 'module',
},
plugins: ['react', '@typescript-eslint'],
rules: {},
};
but es lint task in vs code was throwing error
(node:37609) UnhandledPromiseRejectionWarning: TypeError: Failed to load plugin '@typescript-eslint' declared in '.eslintrc.js': Class extends value undefined is not a constructor or null
package.json
"devDependencies": {
"@types/classnames": "^2.3.1",
"@types/react-redux": "^7.1.19",
"@types/react-router-dom": "^5.3.1",
"@typescript-eslint/parser": "^4.33.0",
"eslint": "^7.32.0",
"eslint-plugin-import": "^2.25.2",
"typescript": "^4.4.4"
},
"dependencies": {
"@types/jest": "^26.0.15",
"@types/node": "^12.0.0",
"@types/react": "^17.0.0",
"@types/react-dom": "^17.0.0",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-redux": "^7.2.5",
"react-router-dom": "^5.3.0",
"react-scripts": "^4.0.3",
"redux": "^4.1.1",
}
now when I run below command to install the missing package
npm i --save-dev @typescript-eslint/eslint-plugin
it throws error in terminal
npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR!
npm ERR! While resolving: [email protected]
npm ERR! Found: @typescript-eslint/[email protected]
npm ERR! node_modules/@typescript-eslint/parser
npm ERR! dev @typescript-eslint/parser@"^4.33.0" from the root project
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! peer @typescript-eslint/parser@"^5.0.0" from @typescript-eslint/[email protected]
npm ERR! node_modules/@typescript-eslint/eslint-plugin
npm ERR! dev @typescript-eslint/eslint-plugin@"*" from the root project
npm ERR!
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force, or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
npm ERR! A complete log of this run can be found in
So as per suggestion tried with option
npm i --save-dev @typescript-eslint/eslint-plugin --legacy-peer-deps
it was installed successfully but with higher version (5.x) than the @typescript-eslint/parser version and as per mentioned on the eslint-plugin documentation
It is important that you use the same version number for @typescript-eslint/parser and @typescript-eslint/eslint-plugin.
so re install package of similar version
> npm install --save-dev @typescript-eslint/[email protected]
but in vs code it still throw error of
UnhandledPromiseRejectionWarning: TypeError: Failed to load plugin '@typescript-eslint' declared in '.eslintrc.js': Class extends value undefined is not a constructor or null
so I have tried to install
npm install --save-dev @typescript-eslint
but it throw error
npm ERR! code EINVALIDTAGNAME
npm ERR! Invalid tag name "@typescript-eslint": Tags may not have any characters that encodeURIComponent encodes.
also tried by updating es lint latest version 8.0 but it creates another problem.
I know that this is because I am trying to install a package which does not exist but how to solve this? am I missing something here.
- vscode - v 1.61.1
- ubuntu - v 20.04