返回

ESLint依赖冲突解决方案

前端

在脚手架里面选择了ESLint后npm装包时会出现的依赖冲突

今天装包的时候一直报错误,烦都烦死了 有道翻译了一下大致上是上面上游依赖冲突. 怎么解决呢?百度了半天,果然百度才是yyds 因为npm版本省级了,(v8.3.1) npmV7之前的版本遇到依赖冲突会自动降级为最高满足的版本,不会报这个错误,在npmV7之后就不会自动降级了,就会报错,如下:

npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR! 
npm ERR! While resolving: test@1.0.0
npm ERR! Found: @babel/core@7.18.6
npm ERR! node_modules/@babel/core
npm ERR!   @babel/core@"^7.12.13" from the root project
npm ERR!   peer @babel/core@"^7.0.0-0" from @babel/plugin-transform-react-jsx@7.18.6
npm ERR!   node_modules/@babel/plugin-transform-react-jsx
npm ERR!     @babel/plugin-transform-react-jsx@"^7.18.6" from the root project
npm ERR!   peer @babel/core@"^7.12.13" from @babel/plugin-proposal-class-properties@7.18.6
npm ERR!   node_modules/@babel/plugin-proposal-class-properties
npm ERR!     @babel/plugin-proposal-class-properties@"^7.18.6" from the root project
npm ERR!   peer @babel/core@"^7.0.0-0" from @babel/plugin-proposal-object-rest-spread@7.18.9
npm ERR!   node_modules/@babel/plugin-proposal-object-rest-spread
npm ERR!     @babel/plugin-proposal-object-rest-spread@"^7.18.9" from the root project
npm ERR!   1 more (@babel/plugin-syntax-jsx)
npm ERR! 
npm ERR! Could not resolve dependency:
npm ERR! peer @babel/core@"^7.0.0-0" from @babel/plugin-transform-react-jsx@7.18.6
npm ERR! node_modules/@babel/plugin-transform-react-jsx
npm ERR!   @babel/plugin-transform-react-jsx@"^7.18.6" from the root project
npm ERR!   peer @babel/core@"^7.0.0-0" from @babel/plugin-proposal-class-properties@7.18.6
npm ERR!   node_modules/@babel/plugin-proposal-class-properties
npm ERR!     @babel/plugin-proposal-class-properties@"^7.18.6" from the root project
npm ERR!   peer @babel/core@"^7.0.0-0" from @babel/plugin-proposal-object-rest-spread@7.18.9
npm ERR!   node_modules/@babel/plugin-proposal-object-rest-spread
npm ERR!     @babel/plugin-proposal-object-rest-spread@"^7.18.9" from the root project
npm ERR!   1 more (@babel/plugin-syntax-jsx)
npm ERR! 
npm ERR! Conflicting peer dependency: @babel/core@7.18.6
npm ERR! node_modules/@babel/core
npm ERR!   peer @babel/core@"^7.12.13" from the root project
npm ERR!   peer @babel/core@"^7.0.0-0" from @babel/plugin-transform-react-jsx@7.18.6
npm ERR!   node_modules/@babel/plugin-transform-react-jsx
npm ERR!     @babel/plugin-transform-react-jsx@"^7.18.6" from the root project
npm ERR!   peer @babel/core@"^7.12.13" from @babel/plugin-proposal-class-properties@7.18.6
npm ERR!   node_modules/@babel/plugin-proposal-class-properties
npm ERR!     @babel/plugin-proposal-class-properties@"^7.18.6" from the root project
npm ERR!   peer @babel/core@"^7.0.0-0" from @babel/plugin-proposal-object-rest-spread@7.18.9
npm ERR!   node_modules/@babel/plugin-proposal-object-rest-spread
npm ERR!     @babel/plugin-proposal-object-rest-spread@"^7.18.9" from the root project
npm ERR!   1 more (@babel/plugin-syntax-jsx)

解决方法一:

# 先卸载包
npm uninstall eslint --save-dev
# 全局安装eslint@8.0.1
npm i eslint@8.0.1 -g
# 添加环境变量PATH
export PATH=$PATH:/Users/xxx/node_modules/.bin

# 重新安装依赖
npm i

解决方法二:

npm i --legacy-peer-deps

解决方法三:

npm i --force

解决方法四:

npm i -D eslint@8.0.1

解决方法五:

npm i eslint@^7.32.0

总结

在脚手架里面选择了ESLint后npm装包时可能会遇到的依赖冲突问题,可以通过以上几种方法来解决。