我通过显式安装依赖的 npm 包解决了这个问题,即npm install [package]@[version] --save-dev,而不是使用npx install-peerdeps 快捷方式。
eslint-config-airbnb 的 npm 包页面详细说明了如何使用:npm info "eslint-config-airbnb@latest" peerDependencies 列出依赖项
对于版本18.2.1,这给出了:
{
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'
}
显示错误详细信息的日志文件位于~/.npm/_logs/。
日志文件显示npx install-peerdeps 为eslint 选择^7.2.0,为eslint-plugin-react-hooks 选择^1.7.0。 但是后者eslint-plugin-react-hooks@^1.7.0 需要eslint@"^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0"(根据日志文件),因此解析依赖树时出错。
我明确安装了所有软件包中的最新版本(即npm install eslint --save-dev 等),这些软件包安装了与上述依赖项一致的以下版本(来自 package.json)。
"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"
}