/babel-plugin-react-relay

Babel plugin for Relay Classic which works out of the box with your GraphQL endpoint

Primary LanguageJavaScriptMIT LicenseMIT

babel-plugin-react-relay npm version

Babel plugin for Relay Classic which works out of the box with your GraphQL endpoint

DEPRECATED: Given the new relay-compiler setup (for Relay Modern) this babel plugin is no longer necessary.

How does this relate to babel-relay-plugin?

This package uses babel-relay-plugin internally but makes usage more convenient and extends its functionality. For example you no longer need to have a build/babelRelayPlugin.js script.

(The version is the same as babel-relay-plugin by the way.)

Install

$ npm install -D babel-plugin-react-relay

Configuration

Note: We recently switched over to graphql-config, so this might be a breaking change for you.

Step 1: Add plugin to .babelrc

Add the following to your .babelrc file or the corresponding babel configuration.

{
	"plugins": ["react-relay"]
}

Step 2: Configure your GraphQL schema

This plugin uses the graphql-config format and already works out of the box if you're using another GraphQL dev tool such as this great IntelliJ Plugin.

Add one of the following source options to your package.json file. See here for more configuration details.

For your convenience, here is the easiest way to configure your GraphQL endpoint:

export GRAPHQL_ENDPOINT="https://your.api/graphql"

Troubleshooting

Using graphql-js as configuration option

For those intending to directly reference their backend schema.js, you will need to ensure a single version of graphql exists in node_modules. However as of this writing, babel-relay-plugin and graphql-config-parser reference incompatible versions of graphql (context). A workaround is to force the graphql dependency within npm-shrinkwrap.json at your project's root (make sure to adapt as currently relevant):

{
  "dependencies": {
    "babel-relay-plugin": {
      "version": "0.9.3",
      "from": "babel-relay-plugin@0.9.3",
      "dependencies": {
        "graphql": {
          "version": "0.7.1",
          "from": "graphql@0.6.2"
        }
      }
    }
  }
}

Then run npm prune, npm install and npm dedupe for good measure.

License

MIT License

Help & Community Slack Status

Join our Slack community if you run into issues or have questions. We love talking to you!