react-redux and redux should be peer dependencies #1298
Open
Description
This issue pertains to the following package(s):
- GraphQL Playground - Electron App
- GraphQL Playground HTML
- GraphQL Playground React
- GraphQL Playground Express Middleware
- GraphQL Playground Hapi Middleware
- GraphQL Playground Koa Middleware
- GraphQL Playground Lambda Middleware
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?
- Create a new create-react-app using yarn as package manager
- Install graphql-playground-react and react-redux to import the Provider from
- Use the Playground React component as described in the docs, wrapped by the Provider
- start the app and see it fail
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.