I resolved this by explicitly installing the dependent npm packages i.e. npm install [package]@[version] --save-dev
rather than using the npx install-peerdeps
shortcut.
The npm package page for eslint-config-airbnb details how to list the dependencies using: npm info "eslint-config-airbnb@latest" peerDependencies
For version 18.2.1
this gave:
{
eslint: '^5.16.0 || ^6.8.0 || ^7.2.0',
'eslint-plugin-import': '^2.22.1',
'eslint-plugin-jsx-a11y': '^6.4.1',
'eslint-plugin-react': '^7.21.5',
'eslint-plugin-react-hooks': '^4 || ^3 || ^2.3.0 || ^1.7.0'
}
Log files showing details about the error are located at ~/.npm/_logs/
.
The log file shows that npx install-peerdeps
chooses ^7.2.0
for eslint
and ^1.7.0
for eslint-plugin-react-hooks
. BUT the latter eslint-plugin-react-hooks@^1.7.0
requires eslint@"^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0"
(according to the log file) hence the error resolving the dependency tree.
I explicitly installed the latest of all packages (i.e. npm install eslint --save-dev
etc) which installed the following versions (from package.json) which are in line with the dependencies above.
"devDependencies": {
"eslint": "^7.25.0",
"eslint-config-airbnb": "^18.2.1",
"eslint-plugin-import": "^2.22.1",
"eslint-plugin-jsx-a11y": "^6.4.1",
"eslint-plugin-react": "^7.23.2",
"eslint-plugin-react-hooks": "^4.2.0"
}