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

Next.js: Add experimental SWC support #24852

Merged
merged 20 commits into from Nov 20, 2023

Conversation

valentinpalkovic
Copy link
Contributor

@valentinpalkovic valentinpalkovic commented Nov 15, 2023

Closes #24827

What I did

Added experimental SWC mode for Next.js >= 14

Checklist for Contributors

Testing

The changes in this PR are covered in the following automated tests:

  • stories
  • unit tests
  • integration tests
  • end-to-end tests

Manual testing

This section is mandatory for all contributions. If you believe no manual test is necessary, please state so explicitly. Thanks!

Next.js 12 sandbox

-> Setting framework.options.builder.useSWC: true shouldn't have any effect. Instead the user should get a warning in the console, that SWC mode is only supported in Next.js v14 and above. It would be beneficial also to test Next.js 13, since we currently don't have a Next.js 13 sandbox in place. Just check out one of the Next.js sandboxes and change the next dependency to the latest v13. The behaviour should be the same as for Next.js v12. SWC is not supported here. Storybook should work as expected in Babel mode.

Other Next.js sandboxes

-> Set framework.options.builder.useSWC: true and test whether all Next.js Stories are working as expected. Personally, I have tested the local font option already.

Documentation

  • Add or update documentation reflecting your changes
  • If you are deprecating/removing a feature, make sure to update
    MIGRATION.MD

Checklist for Maintainers

  • When this PR is ready for testing, make sure to add ci:normal, ci:merged or ci:daily GH label to it to run a specific set of sandboxes. The particular set of sandboxes can be found in code/lib/cli/src/sandbox-templates.ts

  • Make sure this PR contains one of the labels below:

    Available labels
    • bug: Internal changes that fixes incorrect behavior.
    • maintenance: User-facing maintenance tasks.
    • dependencies: Upgrading (sometimes downgrading) dependencies.
    • build: Internal-facing build tooling & test updates. Will not show up in release changelog.
    • cleanup: Minor cleanup style change. Will not show up in release changelog.
    • documentation: Documentation only changes. Will not show up in release changelog.
    • feature request: Introducing a new feature.
    • BREAKING CHANGE: Changes that break compatibility in some way with current major version.
    • other: Changes that don't fit in the above categories.

🦋 Canary release

This PR does not have a canary release associated. You can request a canary release of this pull request by mentioning the @storybookjs/core team here.

core team members can create a canary release here or locally with gh workflow run --repo storybookjs/storybook canary-release-pr.yml --field pr=<PR_NUMBER>

@valentinpalkovic valentinpalkovic self-assigned this Nov 15, 2023
@valentinpalkovic valentinpalkovic added feature request nextjs ci:daily Run the CI jobs that normally run in the daily job. labels Nov 15, 2023
Copy link

socket-security bot commented Nov 15, 2023

Updated dependencies detected. Learn more about Socket for GitHub ↗︎

Packages Version New capabilities Transitives Size Publisher
next 14.0.0...14.0.2 None +10/-10 1.14 GB vercel-release-bot
@types/jscodeshift 0.11.7...0.11.10 None +0/-0 37.9 kB types

@valentinpalkovic valentinpalkovic force-pushed the valentin/add-swc-support-for-nextjs branch 2 times, most recently from 554ad41 to ed993be Compare November 15, 2023 15:12
@valentinpalkovic valentinpalkovic marked this pull request as ready for review November 15, 2023 15:16
Copy link
Contributor

@jonniebigodes jonniebigodes left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@valentinpalkovic thanks for taking the time to put together this pull request and include the required changes to the documentation. Appreciate it 🙏 ! Only one small thing for you to look into and this should be good to go from my end. Approving this to unblock you.

docs/api/main-config-typescript.md Outdated Show resolved Hide resolved
@valentinpalkovic valentinpalkovic force-pushed the valentin/add-swc-support-for-nextjs branch 3 times, most recently from 43c7112 to bcc8e7e Compare November 16, 2023 12:56
@valentinpalkovic valentinpalkovic force-pushed the valentin/add-swc-support-for-nextjs branch from bcc8e7e to 5021bf4 Compare November 20, 2023 08:05
import path from 'path';
import type { RuleSetRule } from 'webpack';
import semver from 'semver';
import { NextjsSWCNotSupportedError } from 'lib/core-events/src/errors/server-errors';
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
import { NextjsSWCNotSupportedError } from 'lib/core-events/src/errors/server-errors';
import { NextjsSWCNotSupportedError } from '@storybook/core-events/server-errors';

@valentinpalkovic valentinpalkovic merged commit 28cc7c3 into next Nov 20, 2023
107 checks passed
@valentinpalkovic valentinpalkovic deleted the valentin/add-swc-support-for-nextjs branch November 20, 2023 15:08
@github-actions github-actions bot mentioned this pull request Nov 20, 2023
36 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ci:daily Run the CI jobs that normally run in the daily job. feature request nextjs
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Next.js: Support experimental SWC mode
3 participants