Skip to content

Pinned react version breaks projects on newer React 19 patch versions #454

Closed

Description

@margad
  • Component or Package Name: jsx-email
  • Component or Package Version: 3.2.0

Expected Behavior / Situation

jsx-email should work with any React 19.2 patch version. If a project already has react@19.2.6 installed, jsx-email should reuse it.

Actual Behavior / Situation

The pnpm-workspace.yaml catalog pins react and react-dom to 19.2.5. Because catalog: resolves to an exact version, package manager installs a second copy of React (19.2.5) alongside the project's existing 19.2.6. This causes duplicate React instances in the tree and breaks the build.

Modification Proposal

Change the catalog entry from an exact pin to a caret range:

catalog:
  react: ^19.2.0
  react-dom: ^19.2.0

This lets package managers reuse whatever React 19 version the consuming project already has installed instead of installing a duplicate.

Activity

  1. shellscape commented on May 28, 2026

    @shellscape
    Owner

    Thanks for the issue. You can work around this right now with overrides with your preferred package manager.

    The ideal change here is that devDeps are added which use catalog (because you want to ensure the entire repo is using the same exact version for development consistency) but having peerDeps which contain the caret range.

  2. shellscape commented on May 28, 2026

    @shellscape
    Owner

    @CharlieHelps prepare a fix PR for this issue

  3. charliecreates commented on May 28, 2026

    @charliecreates
    Contributor

    Prepared a fix PR: #455

    It updates pnpm-workspace.yaml catalog entries for react and react-dom from 19.2.5 to ^19.2.0 so projects on newer React 19 patch releases can reuse their installed version instead of getting a duplicate React copy.

    Validation note: :typecheck and :test currently fail on this branch and on main with pre-existing module-resolution/typecheck issues unrelated to this change.

  4. margad commented on May 28, 2026

    @margad
    Author

    That was fast thanks @shellscape

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

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions