Migration guide for Storybook 11
Storybook 11 is coming!
This guide is meant to help you upgrade from Storybook 10.x to 11 successfully!
Migrating from a Storybook version prior to 10?
You'll first need to upgrade to Storybook 10. Then you can return to this guide.
Major breaking changes
The rest of this guide will help you upgrade successfully, either automatically or manually. But first, there are some breaking changes in Storybook 11. Here are the most impactful changes you should know about before you go further:
- Ecosystem updates
- Configuration changes
- Changes for addon authors
If any of these changes apply to your project, please read through the linked migration notes before continuing.
If any of these new requirements or changes are blockers for your project, we recommend to continue using Storybook 10.x.
You may wish to read the full migration notes before migrating. Or you can run the upgrade command below and we’ll try to take care of everything for you!
Automatic upgrade
To upgrade your Storybook, run the upgrade command in the root of your repository:
npx storybook@latest upgradeThis will:
- Find all of the Storybook projects in your repository
- For each project
- Determine that none of the breaking changes apply to your project
- If they do, you will receive instructions on how to resolve them before continuing
- Upgrade your Storybook dependencies to the latest version
- Run a collection of automigrations, which will:
- Check for common upgrade tasks
- Explain the necessary changes with links to more information
- Ask for approval, then perform the task automatically on your behalf
- Determine that none of the breaking changes apply to your project
New projects
To add Storybook to a project that isn’t currently using Storybook:
npm create storybook@latestThis will:
- Figure out which renderer (React, Vue, Angular, Web Components), builder (Webpack, Vite), or meta-framework (Next.js, SvelteKit) you’re using
- Install Storybook 11 and auto-configure it to mirror project settings
Troubleshooting
The automatic upgrade should get your Storybook into a working state. If you encounter an error running Storybook after upgrading, here’s what to do:
- Try running the
doctorcommand to check for common issues (such as duplicate dependencies, incompatible addons, or mismatched versions) and see suggestions for fixing them. - If you’re running
storybookwith thedevcommand, try using thebuildcommand instead. Sometimesbuilderrors are more legible thandeverrors! - Check the full migration notes, which contains an exhaustive list of noteworthy changes in Storybook 11. Many of these are already handled by automigrations when you upgrade, but not all are. It’s also possible that you’re experiencing a corner case that we’re not aware of.
- Search Storybook issues on GitHub. If you’re seeing a problem, there’s a good chance other people are too. If so, upvote the issue, try out any workarounds described in the comments, and comment back if you have useful info to contribute.
- If there’s no existing issue, you can file one, ideally with a reproduction attached. We’ll be on top of Storybook 11 issues as we’re stabilizing the release.
If you prefer to debug yourself, here are a few useful things you can do to help narrow down the problem:
- Try removing all addons that are not in the
@storybooknpm namespace (make sure you don't remove thestorybookpackage). Community addons that work well with 10.x might not yet be compatible with 11.x, and this is the fastest way to isolate that possibility. If you find an addon that needs to be upgraded to work with Storybook 11, please post an issue on the addon’s repository, or better yet, a pull request to upgrade it! - Another debugging technique is to bisect to older prerelease versions of Storybook to figure out which release broke your Storybook. For example, assuming that the current prerelease of Storybook is
11.0.0-beta.56, you could set the version to11.0.0-alpha.0in yourpackage.jsonand reinstall to verify that it still works (alpha.0should be nearly identical to10.6.x). If it works, you could then try11.0.0-beta.0, then11.0.0-beta.28and so forth. Once you’ve isolated the bad release, read through its CHANGELOG entry and perhaps there’s a change that jumps out as the culprit. If you find the problem, please submit an issue or pull request to the Storybook monorepo and we’ll do our best to take care of it quickly.
Yarn PnP support removed
Storybook 11 removes support for Yarn Plug'n'Play (PnP), which was deprecated in Storybook 10:
- The
--use-pnpflag no longer exists on thestorybook initandcreate storybookcommands. - Storybook no longer bootstraps or scaffolds projects with Yarn PnP enabled. New projects always use the standard
node_moduleslayout; if your project relies on Yarn PnP, switch yournodeLinkersetting tonode-modules. - The
detectPnputility is no longer exported fromstorybook/internal/cli.
For the configuration steps and removed CLI options, see the Yarn PnP migration reference.
Optional migrations
In addition to the automigrations and manual migrations above, there are also optional migrations that you should consider. These are features that we’ve deprecated in Storybook 11 (but remain backwards compatible), or best practices that should help you be more productive in the future.
Next.js Webpack to Next.js Vite
The Webpack-based @storybook/nextjs framework is deprecated but remains supported in Storybook 11. Its removal is planned for Storybook 12. Follow the instructions to migrate to @storybook/nextjs-vite.
test-runner to addon-vitest
addon-vitest and the rest of the Storybook Test experience is designed to supercede the test-runner. It's faster and provides a better experience for writing and running tests. If your project is built with Vite and uses React, Vue, Angular, Web Components, or Svelte, you should consider following the instructions to migrate to addon-vitest.
