Skip to content

[BUG] React runtime resolution issue caused by outdated hardcoded jsx-runtime path #2090

Description

@bufan-huang

Describe the bug.

React runtime resolution issue caused by outdated hardcoded jsx-runtime path

Problem

The current React version used in generator-react-sdk is outdated and is no longer aligned with other dependent AsyncAPI libraries such as @asyncapi/html-template.

The code currently hardcodes an internal React runtime path:

'react/jsx-runtime': require.resolve(
  'react/cjs/react-jsx-runtime.production.min'
).replace(/\\/g, '/'),

However, this internal path is no longer exposed through React package exports in newer React versions.

This causes runtime resolution failures such as:

Error: Package subpath './cjs/react-jsx-runtime.production.min'
is not defined by "exports"

Example stack trace references packages like:

node_modules/.pnpm/@asyncapi/html-...

Suggested discussion points

  • Should AsyncAPI packages align on a consistent React version strategy?
  • Should the implementation switch to the public runtime entrypoint instead?

Example:

require.resolve('react/jsx-runtime')
  • Is backward compatibility with older React versions still required?

I wanted to open this issue first to discuss the preferred direction with maintainers before continuing with a PR implementation.

Expected behavior

running

Screenshots

Error: Package subpath './cjs/react-jsx-runtime.production.min' is not defined by "exports" in node_modules.pnpm@asyncapi+html-template@3.5_38169f94417d5abe6c7e65de49492da1\node_modules\react\package.json at exportsNotFound (node:internal/modules/esm/resolve:313:10)

dependencies:
nestjs-asyncapi 2.0.1
├─┬ @asyncapi/generator 2.11.0
│ ├─┬ @asyncapi/generator-components 0.6.0
│ │ └─┬ @asyncapi/generator-react-sdk 0.2.25
│ │ └── react 17.0.2
│ └─┬ @asyncapi/generator-react-sdk 0.2.25
│ └── react 17.0.2
└─┬ @asyncapi/html-template 3.5.6
├─┬ @asyncapi/generator-react-sdk 1.1.3
│ └── react 17.0.2
├─┬ @asyncapi/react-component 3.1.3
│ ├── react 18.3.1 peer
│ ├─┬ react-dom 18.3.1 peer
│ │ └── react 18.3.1 peer
│ ├─┬ react-error-boundary 4.1.2
│ │ └── react 18.3.1 peer
│ └─┬ use-resize-observer 9.1.0
│ ├── react 18.3.1 peer
│ └─┬ react-dom 18.3.1 peer
│ └── react 18.3.1 peer
├── react 18.3.1
└─┬ react-dom 18.3.1
└── react 18.3.1 peer

How to Reproduce

  1. I first did this
  2. I then did this
  3. And so on . . .

🖥️ Device Information [optional]

  • Operating System (OS):win 11 pnpm10
  • Browser:
  • Browser Version:

👀 Have you checked for similar open issues?

  • I checked and didn't find similar issue

🏢 Have you read the Contributing Guidelines?

Are you willing to work on this issue ?

Yes I am willing to submit a PR!

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions