patternfly / patternfly-react

A set of React components for the PatternFly project.
https://react-staging.patternfly.org/
MIT License
798 stars 355 forks source link

error when using npm to run install #6804

Open nicolethoen opened 2 years ago

nicolethoen commented 2 years ago

when using npm 8 to execute npm install I get the following error:

npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR! 
npm ERR! While resolving: eslint-plugin-patternfly-react@4.23.2
npm ERR! Found: eslint@8.7.0
npm ERR! node_modules/eslint
npm ERR!   peer eslint@">=5" from eslint-plugin-patternfly-react@4.23.2
npm ERR!   packages/eslint-plugin-patternfly-react
npm ERR!     eslint-plugin-patternfly-react@4.23.2
npm ERR!     node_modules/eslint-plugin-patternfly-react
npm ERR!       workspace packages/eslint-plugin-patternfly-react from the root project
npm ERR! 
npm ERR! Could not resolve dependency:
npm ERR! peer eslint@"^4.9.0" from eslint-config-airbnb@16.1.0
npm ERR! node_modules/eslint-config-airbnb
npm ERR!   eslint-config-airbnb@"^16.1.0" from eslint-plugin-patternfly-react@4.23.2
npm ERR!   packages/eslint-plugin-patternfly-react
npm ERR!     eslint-plugin-patternfly-react@4.23.2
npm ERR!     node_modules/eslint-plugin-patternfly-react
npm ERR!       workspace packages/eslint-plugin-patternfly-react 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! 
npm ERR! See /Users/nthoen/.npm/eresolve-report.txt for a full report.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/nthoen/.npm/_logs/2022-01-17T13_07_09_970Z-debug-0.log

It seems - according to stack overflow that "When using npm 7, this comes up a lot because peer dependencies issues are treated as errors in version 7 whereas they were generally only warnings in version 6. Usually using --legacy-peer-deps makes it work with npm 7[+].”

When I run npm install --legacy-peer-deps, the install works with no errors.

It seems we might need to either readdress our dependencies, or update our README to suggest adding the flag or opting for yarn to perform the install

jonkoops commented 2 years ago

Is there really still a convincing reason to use Yarn at all? Considering that all of the tooling should work with NPM v7.

stale[bot] commented 2 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.

jonkoops commented 2 years ago

@nicolethoen This is probably still relevant no?

jonkoops commented 2 years ago

Note that in order to support NPM the support for Yarn will have to be dropped as their lockfile formats are incompatible. We are talking about running npm install in the root of this repository, correct?

nicolethoen commented 2 years ago

hm.... I think when I opened this, I assumed that we were supporting both. If we can only choose one or the other, I guess we will have to consider which one is actually best - the PF team is definitely in the habit of using Yarn, but that's not necessarily a good reason to opt for Yarn...

jonkoops commented 2 years ago

Yarn does have some possible advantages such as Plug'n'Play and Zero-Installs. However these features are currently not being used in this repository.

jonkoops commented 2 years ago

Note that if we are going to evaluate package managers then PNPM is also worth taking a look at.