0

When trying to generate graphql queries automatically for my vite app, I'm encountering this error:

18:02 $ npm run codegen

> [email protected] codegen
> graphql-codegen

/home/rmartinezt/Projects/cocoon-frontend/frontend/node_modules/vite/dist/node/chunks/dep-glQox-ep.js:37874
import.meta.require("ws").WebSocketServer :
       ^^^^

SyntaxError: Cannot use 'import.meta' outside a module
    at new Script (node:vm:117:7)
    at createScript (node:vm:269:10)
    at Object.runInThisContext (node:vm:317:10)
    at evalModule (/home/rmartinezt/Projects/cocoon-frontend/frontend/node_modules/jiti/dist/jiti.js:1:251724)
    at jiti (/home/rmartinezt/Projects/cocoon-frontend/frontend/node_modules/jiti/dist/jiti.js:1:249841)
    at /home/rmartinezt/Projects/cocoon-frontend/frontend/node_modules/vite/dist/node/index.js:2:19
    at evalModule (/home/rmartinezt/Projects/cocoon-frontend/frontend/node_modules/jiti/dist/jiti.js:1:251913)
    at jiti (/home/rmartinezt/Projects/cocoon-frontend/frontend/node_modules/jiti/dist/jiti.js:1:249841)
    at /home/rmartinezt/Projects/cocoon-frontend/frontend/codegen.ts:12:13
    at evalModule (/home/rmartinezt/Projects/cocoon-frontend/frontend/node_modules/jiti/dist/jiti.js:1:251913) {
  filepath: '/home/rmartinezt/Projects/cocoon-frontend/frontend/codegen.ts'
}

Given that my codegen task is this:

graphql-codegen

Here are my relevant npm modules versions:

"@graphql-codegen/cli": "^5.0.5",
"@graphql-codegen/client-preset": "^4.7.0",
"vite": "^6.2.1"
"@vitejs/plugin-react": "^4.3.4",

And here is my node version:

v23.9.0

This is my codegen.ts file:

import { CodegenConfig } from '@graphql-codegen/cli';
import { loadEnv } from 'vite';

const env = loadEnv('development', process.cwd(), '');

const config: CodegenConfig = {
    schema: [
        {
            'http://localhost:8081/graphql': {
                headers: {
                    Authorization: 'Bearer ' + env.VITE_COCOON_FRONTEND_TOKEN,
                },
            },
        },
    ],
    documents: './src/**/*.graphql',
    ignoreNoDocuments: true,
    generates: {
        './src/gql/': {
            preset: 'client',
        },
        './src/gql/databridge/': {
            schema: 'https://data-bridge-pre.informa.tools/graphql',
            preset: 'client',
        },
    },
};

export default config;

And my tsconfig.json:

{
    "compilerOptions": {
        "target": "ESNext",
        "useDefineForClassFields": true,
        "lib": ["DOM", "DOM.Iterable", "ESNext"],
        "allowJs": true,
        "skipLibCheck": true,
        "esModuleInterop": false,
        "allowSyntheticDefaultImports": true,
        "strict": true,
        "forceConsistentCasingInFileNames": true,
        "module": "ESNext",
        "moduleResolution": "Node",
        "resolveJsonModule": true,
        "isolatedModules": true,
        "noEmit": true,
        "jsx": "react-jsx",
        "types": ["vite/client"]
  },
  "references": [{ "path": "./tsconfig.node.json" }]
}

And finally, my tsconfig.node.json file:

{
  "compilerOptions": {
    "composite": true,
    "module": "ESNext",
    "moduleResolution": "Node",
    "allowSyntheticDefaultImports": true,
  },
  "include": ["vite.config.ts"]
}

I have tried all sorts of changes on the different configuration files, to no avail. Always the same error appears.

I have to say that my codegen runs perfectly under node v20, but not any version higher than that.

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.