ardatan / graphql-tools

:wrench: Utility library for GraphQL to build, stitch and mock GraphQL schemas in the SDL-first approach
https://www.graphql-tools.com
MIT License
5.36k stars 818 forks source link

Forked relay-compiler breaks .bin script #4726

Open f8k8 opened 2 years ago

f8k8 commented 2 years ago

Issue workflow progress

Progress of the issue based on the Contributor Workflow


Describe the bug

The forked version of relay-compiler overwrites the script installed to .bin by the regular version of relay-compiler. This can cause builds to use an incorrect version of the relay compiler.

To Reproduce Steps to reproduce the behavior:

  1. Create a new, empty package with npm init.
  2. Install relay-compiler: npm install --save relay-compiler.
  3. The relay-compiler script in .bin points to the correct place.
  4. Install @graphql-codegen/typescript: npm install --save @graphql-codegen/typescript@2.7.3.
  5. The relay-compiler script in .bin is updated to point to the v12 fork used in @graphql-tools/relay-operation-optimizer

Expected behavior

The forked version of relay-compiler (@ardatan/relay-compiler@12.0.0) should not include the bin entry in its package.json:

"bin": {
    "relay-compiler": "bin/relay-compiler"
  },

and so wouldn't overwrite the relay-compiler script in the .bin folder.

Environment:

Additional context

There doesn't seem to be a repo for the forked relay-compiler (@ardatan/relay-compiler) that I could see to add this issue to.

AnotherHermit commented 2 years ago

We have the same issue, and are currently using "@graphql-codegen/typescript": "2.4.11", as a workaround since that version still works

antonioguerra commented 1 year ago

Hi, same issue here.

(npm init -y && npm i relay-compiler @graphql-tools/relay-operation-optimizer) > /dev/null && readlink node_modules/.bin/relay-compiler

../@ardatan/relay-compiler/bin/relay-compiler

Any ideas @ardatan ?

edvinerikson commented 1 year ago

Another workaround that seem to work:

create a new folder and package.json

// in relay-compiler-patch/package.json
{
  "name": "@ardatan/relay-compiler",
  "version": "0.0.0"
}

then in your top-level package.json, enable workspaces:

  "workspaces": [
    "relay-compiler-patch",
  ],

if you already use workspaces, just drop the package.json inside any of the workspace paths.

Quramy commented 2 months ago

I have the same issue. Any update for this ?