graphql / graphql-playground

🎮 GraphQL IDE for better development workflows (GraphQL Subscriptions, interactive docs & collaboration)
MIT License
8.77k stars 734 forks source link

react-redux and redux should be peer dependencies #1298

Open simoneb opened 3 years ago

simoneb commented 3 years ago

This issue pertains to the following package(s):

What OS and OS version are you experiencing the issue(s) on?

Windows 10

What version of graphql-playground(-electron/-middleware) are you experiencing the issue(s) on?

graphql-playground-react 1.7.27

What is the expected behavior?

The package should not install react-redux and redux

What is the actual behavior?

The package installs react-redux and redux

What steps may we take to reproduce the behavior?

The issue is that Redux and React redux and such kind of packages that should not occur in multiple versions within the same app. Therefore, they should not be installed by graphql-playground-react but they should be marked as devDependencies and peerDependencies.

Note that the issue happens with yarn because of its hoisting behavior, and it doesn't happen when using npm. Regardless, it's conceptually wrong to embed such dependencies and it should be documented that they need to be installed by the hosting application instead.

idiglove commented 2 years ago

I'm trying to debug this issue, my question is what errors do you see? @simoneb I did the steps you said, the playground doesnt load and I get these image

simoneb commented 2 years ago

@idiglove this issue is fairly old and I don't have the repro at hand anymore, but I suspect that the errors you posted are the manifestation of the issue.

idiglove commented 2 years ago

I cant run even without redux with v1.7.28 Getting these errors image

simoneb commented 2 years ago

These errors usually happen when there are.muktiole versions of React (and some related packages) running in your app

ausov commented 2 years ago

Note, as a workaround adding package extensions to .yarnrc.yml seems work fine:

packageExtensions:
  'graphql-playground-react@1.7.28':
    peerDependencies:
      'react': "*"
      'react-dom': "*"
      'react-redux': "*"