Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Investigation]: Support React 19 #29805

Open
12 of 14 tasks
yannbf opened this issue Dec 4, 2024 · 35 comments
Open
12 of 14 tasks

[Investigation]: Support React 19 #29805

yannbf opened this issue Dec 4, 2024 · 35 comments

Comments

@yannbf
Copy link
Member

yannbf commented Dec 4, 2024

Describe the bug

React 19 has been released. We should investigate all the changes that are needed to fully support it.

To users:

You should be able to use Storybook with React 19, but if you found any inconsistency or unsupported feature, please let us know in this issue.

@JReinhold
Copy link
Contributor

JReinhold commented Dec 4, 2024

I don't think we want to upgrade any direct dependencies, as that would be a breaking change, at least if we did it in @storybook/addon-docs or storybook.
We also shouldn't upgrade devDependencies in addons, and especially not addon-kit, because the manager will still be using React 18, so the addons' React version is ignored. Meaning if you're building an addon with React 19 APIs, they won't work as soon as that addon is bundled into the manager at runtime.

@ianzone
Copy link

ianzone commented Dec 6, 2024

it's released now

@silverwind
Copy link

silverwind commented Dec 6, 2024

Would appreciate if these peerDependencies could be updated to support the released version:

"react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta",
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta",

@yannbf
Copy link
Member Author

yannbf commented Dec 6, 2024

Hey @silverwind they should support both React 19 prereleases and ^19.0.0. Are you having any problems?

@silverwind
Copy link

silverwind commented Dec 6, 2024

Ah, you are right, it's not an issue. I wasn't aware that prerelease ranges are satisified by release versions. This works with npm for me without getting a peerDependencies error:

{
  "dependencies": {
    "@storybook/react": "8.4.7",
    "react": "19.0.0"
  }
}

@kerryj89
Copy link

kerryj89 commented Dec 8, 2024

It seems TOOL and TOOLEXTRA do not work with addon on React 19 and cause the following error which probably doesn't mean much to you, but anywhow:

Uncaught TypeError: Cannot read properties of undefined (reading 'A')
    at Y (manager-bundle.js:7:726)
    at J (manager-bundle.js:12:268)
    at P.jsx (manager-bundle.js:16:979)
    at render (manager-bundle.js:16:1915)
    at Xh (globals-runtime.js:3339:13)
    at Wk (globals-runtime.js:5796:23)
    at Vk (globals-runtime.js:5549:13)
    at Uk (globals-runtime.js:5541:27)
    at Jk (globals-runtime.js:5530:9)
    at Ok (globals-runtime.js:5306:81)

If I downgrade to React 18.x it works as expected.

Reproduction:

// .storybook/manager.tsx

import { addons, types } from '@storybook/manager-api';

addons.register('test', () => {
  addons.add('test', {
    type: types.TOOLEXTRA,
    title: 'test',
    paramKey: 'test',
    render: (props: any) => <>test</>,
  });
});

@terrymun
Copy link

terrymun commented Dec 9, 2024

Can confirm that post-React19 upgrade, everything works with the latest version of Storybook (8.4.7) with the exception of our in-house addons: we have encountered the same error as @kerryj89. Temporarily disabling the addon works for now 👍

@stevensacks
Copy link
Contributor

stevensacks commented Dec 10, 2024

I'm getting this error when I try to launch Storybook with React 19:

@storybook/core v8.4.7

SB_CORE-SERVER_0007 (MainFileEvaluationError): Storybook couldn't evaluate your .storybook/main.ts file.

Original error:
Error: Cannot find module 'esbuild'
Require stack:
- /node_modules/esbuild-register/dist/node.js
- /node_modules/@storybook/core/dist/common/index.cjs
- /node_modules/storybook/dist/proxy.cjs
- /node_modules/storybook/bin/index.cjs
    at Module._resolveFilename (node:internal/modules/cjs/loader:1225:15)
    at Module._load (node:internal/modules/cjs/loader:1051:27)
    at Module.require (node:internal/modules/cjs/loader:1311:19)
    at require (node:internal/modules/helpers:179:18)
    at Object.<anonymous> (/node_modules/esbuild-register/dist/node.js:4653:16)
    at Module._compile (node:internal/modules/cjs/loader:1469:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1548:10)
    at Module.load (node:internal/modules/cjs/loader:1288:32)
    at Module._load (node:internal/modules/cjs/loader:1104:12)
    at Module.require (node:internal/modules/cjs/loader:1311:19)
    at loadMainConfig (./node_modules/@storybook/core/dist/common/index.cjs:17511:11)
    at async buildDevStandalone (./node_modules/@storybook/core/dist/core-server/index.cjs:37134:11)
    at async withTelemetry (./node_modules/@storybook/core/dist/core-server/index.cjs:35757:12)
    at async dev (./node_modules/@storybook/core/dist/cli/bin/index.cjs:2591:3)
    at async s.<anonymous> (./node_modules/@storybook/core/dist/cli/bin/index.cjs:2643:74)

WARN Broken build, fix the error above.
WARN You may need to refresh the browser.

This is my main.ts config:

import type {StorybookConfig} from '@storybook/react-vite';
import {mergeConfig} from 'vite';
import tsconfigPaths from 'vite-tsconfig-paths';

const config: StorybookConfig = {
  addons: [
    '@storybook/addon-links',
    {
      name: '@storybook/addon-essentials',
      options: {
        backgrounds: false,
        grid: false,
        measure: false,
        outline: false,
      },
    },
    '@storybook/addon-interactions',
  ],

  docs: {},

  framework: {
    name: '@storybook/react-vite',
    options: {
      builder: {
        viteConfigPath: '.storybook/vite.config.ts',
      },
    },
  },

  stories: ['../app/**/*.stories.tsx'],

  viteFinal: async (viteConfig) =>
    mergeConfig(viteConfig, {
      plugins: [tsconfigPaths()],
    }),
};

export default config;

@yannbf
Copy link
Member Author

yannbf commented Dec 10, 2024

Thanks a lot for reporting @kerryj89 @terrymun! I have a PR that will fix that issue: #30003

@stevensacks is React 19 the only variable that makes this fail? I don't see a connection with the error message you provided. Could you please try downgrading to React 18 and see whether it works?

@Tottzi
Copy link

Tottzi commented Dec 11, 2024

Hei Yo,
I still face this issue but only with one addon.
// 'storybook-addon-apollo-client',
This does not work, only gives the
Uncaught TypeError: Cannot read properties of undefined (reading 'A')
at Y (manager-bundle.js:7:726)
at J (manager-bundle.js:12:268)
at P.jsx (manager-bundle.js:16:979)
at render (manager-bundle.js:16:1915)
at Xh (globals-runtime.js:3339:13)
at Wk (globals-runtime.js:5796:23)
at Vk (globals-runtime.js:5549:13)
at Uk (globals-runtime.js:5541:27)
at Jk (globals-runtime.js:5530:9)
at Ok (globals-runtime.js:5306:81)

@mrginglymus
Copy link
Contributor

There are a number of bundled dependencies in storybook that have incompatible types (mostly due to still using the global JSX namespace); I've started a PR to fix the ones I've spotted so far here: #30031

@Sidnioulz
Copy link
Member

Thanks for the quick fix @yannbf!

Do you know if this is being backported to 8.4? Or will it be in 8.5+?

@gvillo
Copy link

gvillo commented Dec 13, 2024

+1

@yannbf
Copy link
Member Author

yannbf commented Dec 19, 2024

Thanks for the quick fix @yannbf!

Do you know if this is being backported to 8.4? Or will it be in 8.5+?

Most of the work we are doing is towards 8.5, which is currently in beta so should be released soon!

@savanesoff
Copy link

Thanks for the quick fix @yannbf!
Do you know if this is being backported to 8.4? Or will it be in 8.5+?

Most of the work we are doing is towards 8.5, which is currently in beta so should be released soon!

When can we expect this to be avaialble?
This is a magor issue as a lot depends on automation.
Is there a way to run a beta instad?

@terrymun
Copy link

Thanks for the quick fix @yannbf!
Do you know if this is being backported to 8.4? Or will it be in 8.5+?

Most of the work we are doing is towards 8.5, which is currently in beta so should be released soon!

When can we expect this to be avaialble? This is a magor issue as a lot depends on automation. Is there a way to run a beta instad?

If you're in a pinch you can always give the latest beta release for 8.5.0 a try: https://github.com/storybookjs/storybook/releases/tag/v8.5.0-beta.5

@savanesoff
Copy link

savanesoff commented Dec 23, 2024

Thanks for the quick fix @yannbf!
Do you know if this is being backported to 8.4? Or will it be in 8.5+?

Most of the work we are doing is towards 8.5, which is currently in beta so should be released soon!

When can we expect this to be avaialble? This is a magor issue as a lot depends on automation. Is there a way to run a beta instad?

If you're in a pinch you can always give the latest beta release for 8.5.0 a try: https://github.com/storybookjs/storybook/releases/tag/v8.5.0-beta.5

Thanks for speedy reply @terrymun
I've never had the opportunity to install/use unreleased npm registry packages. Any pointers on how I go about using beta?
Thanks again!

@terrymun
Copy link

terrymun commented Dec 23, 2024

@savanesoff 8.5.0-beta.5 has been released: check the releases page or npmjs. You install it just like how you'd install a specific version of any dependency, e.g. if you're npm then it's just npm install [email protected]

@savanesoff
Copy link

@savanesoff You install it just like how you'd install a specific version of any dependency, e.g. if you're npm then it's just npm install [email protected]

Oh my... LOL. Thanks! 😄
I was searching for it in NPM registry and coulnd't find it, untill I really looked for it 😇 My bad...
You're a saviour!

@rrogowski
Copy link

Hi there! Will React 19 be supported for Storybook 7? Or is an upgrade to Storybook 8 required?

@yannbf
Copy link
Member Author

yannbf commented Jan 2, 2025

Hi there! Will React 19 be supported for Storybook 7? Or is an upgrade to Storybook 8 required?

Hey there, there are no plans to backport this to Storybook 7. Please upgrade to Storybook 8 🙏

rajsite added a commit to ni/nimble that referenced this issue Jan 2, 2025
# Pull Request

## 🤨 Rationale

Follow-up from #2501 and
#2499

## 👩‍💻 Implementation

- Updated the major dependencies covered in the above mentioned PR
- Did not pull-in React 19 updates yet, seems supported in storybook,
will give it a try in a follow-on PR or create a tech debt:
storybookjs/storybook#29805
- Rebuilt the lock file to pull in latest versions in semver range
- Had to make peerDependencies on React 18 types as the v19 types got
pulled in on rebuild of lock file and caused issues in mdx typing (the
JSX namespace was deprecated in React 18 and removed in React 19):
     ```
Error: ../../node_modules/@types/mdx/types.d.ts(23,38): error TS2503:
Cannot find namespace 'JSX'.
Error:
../../node_modules/@types/mdx/types.d.ts([28](https://github.com/ni/nimble/actions/runs/12565897794/job/35030682905#step:12:29),23):
error TS2503: Cannot find namespace 'JSX'.
Error: ../../node_modules/@types/mdx/types.d.ts(47,28): error TS2503:
Cannot find namespace 'JSX'.
Error: ../../node_modules/@types/mdx/types.d.ts(73,46): error TS2503:
Cannot find namespace 'JSX'.
     ```
- Removed the webpack-cli dep which seems unused (we don't see to use
the command in any scripts)

## 🧪 Testing

Rely on CI

## ✅ Checklist

- [x] I have updated the project documentation to reflect my changes or
determined no changes are needed.
@Kunkka0822
Copy link

Kunkka0822 commented Jan 8, 2025

Hello @yannbf! Happy New Year!

I'm getting the error while working with React 19 and Storybook 8.5.0-beta.5.

Error
A React Element from an older version of React was rendered. This is not supported. It can happen if:
- Multiple copies of the "react" package is used.
- A library pre-bundled an old copy of "react" or "react/jsx-runtime".
- A compiler tries to "inline" JSX instead of using the runtime.
Call Stack
 throwOnInvalidObjectType
  vendors-node_modules_storybook_react-dom-shim_dist_react-18_mjs.iframe.bundle.js:4476:15
 reconcileChildFibersImpl
  vendors-node_modules_storybook_react-dom-shim_dist_react-18_mjs.iframe.bundle.js:5410:11
 undefined
  vendors-node_modules_storybook_react-dom-shim_dist_react-18_mjs.iframe.bundle.js:5449:33
 reconcileChildren
  vendors-node_modules_storybook_react-dom-shim_dist_react-18_mjs.iframe.bundle.js:7772:13
 updateFunctionComponent
  vendors-node_modules_storybook_react-dom-shim_dist_react-18_mjs.iframe.bundle.js:8069:7
 beginWork
  vendors-node_modules_storybook_react-dom-shim_dist_react-18_mjs.iframe.bundle.js:9717:18
 runWithFiberInDEV
  vendors-node_modules_storybook_react-dom-shim_dist_react-18_mjs.iframe.bundle.js:577:16
 performUnitOfWork
  vendors-node_modules_storybook_react-dom-shim_dist_react-18_mjs.iframe.bundle.js:15078:22
 workLoopSync
  vendors-node_modules_storybook_react-dom-shim_dist_react-18_mjs.iframe.bundle.js:14904:41
 renderRootSync
  vendors-node_modules_storybook_react-dom-shim_dist_react-18_mjs.iframe.bundle.js:14884:11

I've noticed the error comes from alias importing with Storybook, but I am not sure how to resolve it.
This is my main.ts.

import type { StorybookConfig } from '@storybook/react-webpack5';
import path from 'path';

const config: StorybookConfig = {
  stories: ['../src/**/*.mdx', '../src/**/*.stories.@(js|jsx|mjs|ts|tsx)'],
  addons: ['@storybook/preset-create-react-app', '@storybook/addon-links', '@storybook/addon-essentials'],
  framework: {
    name: '@storybook/react-webpack5',
    options: {},
  },
  staticDirs: ['..\\public'],
  webpackFinal: async (config) => {
    config.resolve = {
      ...config.resolve,
      alias: {
        '@': path.resolve(__dirname, '..', 'src'),     //// <-- error from this line
      },
    };

    return config;
  },
};
export default config;

Here webpack.config.js

const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const TsconfigPathsPlugin = require('tsconfig-paths-webpack-plugin');
const ESLintPlugin = require('eslint-webpack-plugin');

module.exports = {
  mode: 'development',
  entry: './src/index.tsx',
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: 'bundle.js',
  },
  devServer: {
    static: {
      directory: path.resolve(__dirname, 'dist'),
    },
    port: 3000,
    open: true,
    hot: true,
    compress: true,
    historyApiFallback: true,
  },
  module: {
    rules: [
      {
        test: /\.css$/i,
        include: path.resolve(__dirname, 'src'),
        use: ['style-loader', 'css-loader', 'postcss-loader'],
      },
      {
        test: /\.tsx?$/,
        use: 'ts-loader',
        exclude: /node_modules/,
      },
      {
        test: /\.(png|jpe?g|gif|jp2|webp)$/,
        loader: 'file-loader',
        options: {
          name: '[name].[ext]',
        },
      },
      {
        test: /\.svg$/i,
        issuer: /\.[jt]sx?$/,
        use: ['@svgr/webpack', 'url-loader'],
      },
    ],
  },
  plugins: [
    new HtmlWebpackPlugin({
      template: './src/index.html',
    }),
    new ESLintPlugin({
      extensions: ['ts'],
    }),
  ],
  resolve: {
    extensions: ['.tsx', '.ts', '.js'],
    plugins: [
      new TsconfigPathsPlugin({
        extensions: ['.js', '.jsx', '.json', '.ts', '.tsx'],
      }),
    ],
  },
};

@zeppelinnn
Copy link

Hi @yannbf, I spent several hours yesterday trying to get storybook (8.4.7) working with React 19 (w/ tailwind) but kept running into the following error when booting storybook. I am using @storybook/experimental-nextjs-vite as the framework in a monorepo created through turborepo:

TypeError: Cannot read properties of undefined (reading 'A')
    at getOwner (http://localhost:6006/node_modules/.cache/storybook/bd45b70ddf2f9c95d1ea5d1e495c39b571d64dc099b1becb6c02aa1a45de3ae3/sb-vite/deps/react_jsx-dev-runtime.js?v=c6a66091:274:47)
    at jsxDEVImpl (http://localhost:6006/node_modules/.cache/storybook/bd45b70ddf2f9c95d1ea5d1e495c39b571d64dc099b1becb6c02aa1a45de3ae3/sb-vite/deps/react_jsx-dev-runtime.js?v=c6a66091:385:59)
    at exports.jsxDEV (http://localhost:6006/node_modules/.cache/storybook/bd45b70ddf2f9c95d1ea5d1e495c39b571d64dc099b1becb6c02aa1a45de3ae3/sb-vite/deps/react_jsx-dev-runtime.js?v=c6a66091:440:16)
    at decorators (http://localhost:6006/src/card.stories.tsx:13:42)
    at hookified (http://localhost:6006/sb-preview/runtime.js:3640:13)
    at http://localhost:6006/sb-preview/runtime.js:4920:17
    at http://localhost:6006/sb-preview/runtime.js:4945:8
    at withOutline (http://localhost:6006/node_modules/.cache/storybook/bd45b70ddf2f9c95d1ea5d1e495c39b571d64dc099b1becb6c02aa1a45de3ae3/sb-vite/deps/@storybook_addon-essentials_outline_preview.js?v=c295f91c:438:43)
    at hookified (http://localhost:6006/sb-preview/runtime.js:3640:13)
    at http://localhost:6006/sb-preview/runtime.js:4920:17

I have recreated a minimal reproducible example at https://github.com/zeppelinnn/react-19-storybook-nextjs-vite
After cloning, run yarn and navigate to packages/ui and run yarn storybook to reproduce the issue.

Let me know if you need any other info. Your help is much appreciated

@Boonstra
Copy link

Boonstra commented Jan 9, 2025

@zeppelinnn As mentioned by Terry, you can give the Storybook 8.5.0 beta a try to resolve that issue. For me the error is resolved with [email protected].

@zeppelinnn
Copy link

zeppelinnn commented Jan 9, 2025

@zeppelinnn As mentioned by Terry, you can give the Storybook 8.5.0 beta a try to resolve that issue. For me the error is resolved with [email protected].

Hey @Boonstra, thanks for the reply! I added a new commit to bump dependencies to the beta version you mentioned (in the example repo I shared) but i'm still seeing the same error. I believe this is specific to the @storybook/experimental-nextjs-vite framework - if i try to use @storybook/nextjs framework it works fine.

Unfortunately in our use case, we have other issues with using @storybook/nextjs due failed import of tailwind styles. I have also tried to use the @storybook/react-vite framework which runs into issues due to the use of utilities such as localFont and web fonts from next/font/google, otherwise i'd switch it to use either of those other frameworks instead.

Could you please check again? Thank you!

@Boonstra
Copy link

Hey @Boonstra, thanks for the reply! I added a new commit to bump dependencies to the beta version you mentioned (in the example repo I shared) but i'm still seeing the same error. I believe this is specific to the @storybook/experimental-nextjs-vite framework - if i try to use @storybook/nextjs framework it works fine.

Could you please check again? Thank you!

Right, I also can't get the Storybook in your repository to run without that error coming up.

@akaltar
Copy link

akaltar commented Jan 14, 2025

I'm trying to upgrade a project to React 19 with storybook, and I've ran into a typescript issue, I've created a reproduction of the issue here: https://stackblitz.com/edit/github-bmd2twki?file=src%2Fstories%2FPage.stories.tsx&preset=node

The error is

'Story' cannot be used as a JSX component.
  Its type 'AnnotatedStoryFn<ReactRenderer, Args>' is not a valid JSX element type.
    Type 'AnnotatedStoryFn<ReactRenderer, Args>' is not assignable to type '(props: any) => ReactNode'.
      Target signature provides too few arguments. Expected 2 or more, but got 1.ts(2786)

And it happens when trying to declare JSX decorators like this:

export const withFullHeight = (Story: StoryFn) => {
  return (
    <div className="h-full">
      <Story />
    </div>
  );
};

Is there a different type instead of StoryFn I can use to type these decorators that still works with React 19?

PS: Thanks for adding support for React 19 so quickly.

@terrymun
Copy link

terrymun commented Jan 14, 2025

@akaltar I personally prefer typing the function instead of the parameters, since it requires knowledge of the underlying renderer (AFAIK storybook supports multiple renderers). This should probably work for you:

import type { ReactRenderer } from '@storybook/react';
import type { DecoratorFunction } from '@storybook/types';

export const withFullHeight: DecoratorFunction<ReactRenderer> = (Story) => {
  return (
    <div className="h-full">
      <Story />
    </div>
  );
};

@akaltar
Copy link

akaltar commented Jan 14, 2025

Thanks, that resolves the problem!

@terrymun
Copy link

@yannbf Can confirm that with the latest 8.5.0 release, the addon issues mentioned by @kerryj89 (#29805 (comment)) has been fixed.

Thank you so much!

@mpelham
Copy link

mpelham commented Jan 16, 2025

Howdy folks, I have run into a few issues with Addon-a11y 8.5.0 and React 19:

 FAIL  src/stories/Components/Foo/Foo.stories.tsx
  ● Foo/Foo › Default › smoke-test

    page.evaluate: Error: Axe is already running. Use `await axe.run()` to wait for the previous run to finish before starting a new run.

I will also note that addon-ally will fail when running npx storybook@next upgrade.

npm ERR! Found: @storybook/[email protected]
npm ERR! node_modules/@storybook/addon-a11y
npm ERR!   dev @storybook/addon-a11y@"^8.6.0-alpha.0" from the root project

Thanks so much for all the work, and have a great day! I can open up an issue on this if required!

@JReinhold
Copy link
Contributor

@mpelham could you open a new issue? I'm not sure this is related to React 19

@Mearman
Copy link

Mearman commented Jan 16, 2025

It seems to be behaving better for me. this may be a red herring, but it appears that my addon only works if the manager file is .tsx even if there is no TSX in it

@zeppelinnn
Copy link

Hey @Boonstra, thanks for the reply! I added a new commit to bump dependencies to the beta version you mentioned (in the example repo I shared) but i'm still seeing the same error. I believe this is specific to the @storybook/experimental-nextjs-vite framework - if i try to use @storybook/nextjs framework it works fine.
Could you please check again? Thank you!

Right, I also can't get the Storybook in your repository to run without that error coming up.

I've tried to upgrade to [email protected] but still experiencing the same issue (original report)

We're blocked on upgrading to react 19 due to this error - any update on progress or an ETA would be greatly appreciated!

@JReinhold
Copy link
Contributor

JReinhold commented Jan 20, 2025

I've tried to upgrade to [email protected] but still experiencing the same issue (original report)

We're blocked on upgrading to react 19 due to this error - any update on progress or an ETA would be greatly appreciated!

@zeppelinnn the reason you're experiencing this issue, is because you're still using Next.js v14 which doesn't support React 19.

Storybook's Next.js integration (@storybook/nextjs and @storybook/experimental-nextjs-vite) uses the React version that Next.js comes precompiled with, and that version must match what you define in Storybook. In your apps/docs and and apps/web you have "next": "^14.2.3", which only supports React 18. While you also have "react": "19.0.0" there, that doesn't actually make a difference because Next.js ships its own version of React, so you're lying to yourself. You can see this if you do something like this in your Next.js application today:

'use client';
import React from 'react';

function SomeClientComponent() {
  React.useEffect(() => {
    console.log('React version:', React.version);
  }, [])
  return null;
}

You'll get React version: 18.3.0-canary-178c267a4e-20241218 in your console.

There are two ways to solve this:

  1. Install next@^15 as a devDependency in your ui package, and Storybook will use that correctly then. Then the UI package will not depend on your next package being hoisted from apps and docs. Though your UI will now support Next.js 15 and React 19, your app still won't, so you could run into trouble there.

You can see I did this here which made things work again: JReinhold/react-19-storybook-nextjs-vite@19a2a92

As a side note, you should also install react and react-dom as devDependencies to your ui package. Even though they are currently listed as peerDependencies, your UI package is not self-contained, which is a common footgun. It only really works right now because Yarn hoists React from your other packages, but that can easily change in the future. If dependencies changes in your other packages, the UI package will break, which is not something you want. It's best practice to list explicit versions of any peer dependencies you have as dev dependencies.

  1. Upgrade to Next.js v15 in your apps and docs, so they actually come shipped with React 19.

In reality you probably want to do both.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: No status
Development

No branches or pull requests