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

feat(turbopack): add support for parallel routes and route interception #57450

Merged
merged 7 commits into from
Oct 26, 2023

Conversation

ForsakenHarmony
Copy link
Member

@ForsakenHarmony ForsakenHarmony commented Oct 25, 2023

What?

We have to walk the directory tree recursively for every page (instead of once) to get the correct loaderTree.

With this PR we walk the directory tree and for every page.(js,jsx,ts,tsx) (entrypoint) we find we walk it again to get the loader tree for that page

Closes WEB-1868
Closes WEB-1609

@ijjk ijjk added Turbopack Related to Turbopack with Next.js. created-by: Turbopack team PRs by the turbopack team type: next labels Oct 25, 2023
@ijjk
Copy link
Member

ijjk commented Oct 25, 2023

Stats from current PR

Default Build
General
vercel/next.js canary vercel/next.js hrmny/turbopack-parallel-routes Change
buildDuration 10.7s 10.6s N/A
buildDurationCached 6.2s 6.1s N/A
nodeModulesSize 175 MB 175 MB
nextStartRea..uration (ms) 397ms 397ms
Client Bundles (main, webpack)
vercel/next.js canary vercel/next.js hrmny/turbopack-parallel-routes Change
199-HASH.js gzip 32.3 kB 32.4 kB N/A
3f784ff6-HASH.js gzip 53.2 kB 53.2 kB N/A
99.HASH.js gzip 182 B 182 B
framework-HASH.js gzip 45.5 kB 45.5 kB
main-app-HASH.js gzip 254 B 252 B N/A
main-HASH.js gzip 35.3 kB 35.4 kB N/A
webpack-HASH.js gzip 1.75 kB 1.75 kB N/A
Overall change 45.7 kB 45.7 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary vercel/next.js hrmny/turbopack-parallel-routes Change
polyfills-HASH.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary vercel/next.js hrmny/turbopack-parallel-routes Change
_app-HASH.js gzip 206 B 205 B N/A
_error-HASH.js gzip 182 B 180 B N/A
amp-HASH.js gzip 506 B 505 B N/A
css-HASH.js gzip 322 B 323 B N/A
dynamic-HASH.js gzip 2.59 kB 2.59 kB
edge-ssr-HASH.js gzip 260 B 259 B N/A
head-HASH.js gzip 350 B 350 B
hooks-HASH.js gzip 369 B 369 B
image-HASH.js gzip 4.38 kB 4.38 kB N/A
index-HASH.js gzip 256 B 256 B
link-HASH.js gzip 2.67 kB 2.67 kB N/A
routerDirect..HASH.js gzip 316 B 318 B N/A
script-HASH.js gzip 385 B 384 B N/A
withRouter-HASH.js gzip 319 B 319 B
1afbb74e6ecf..834.css gzip 106 B 106 B
Overall change 3.99 kB 3.99 kB
Client Build Manifests
vercel/next.js canary vercel/next.js hrmny/turbopack-parallel-routes Change
_buildManifest.js gzip 484 B 482 B N/A
Overall change 0 B 0 B
Rendered Page Sizes
vercel/next.js canary vercel/next.js hrmny/turbopack-parallel-routes Change
index.html gzip 529 B 529 B
link.html gzip 542 B 543 B N/A
withRouter.html gzip 523 B 524 B N/A
Overall change 529 B 529 B
Edge SSR bundle Size
vercel/next.js canary vercel/next.js hrmny/turbopack-parallel-routes Change
edge-ssr.js gzip 96 kB 96 kB N/A
page.js gzip 140 kB 140 kB N/A
Overall change 0 B 0 B
Middleware size
vercel/next.js canary vercel/next.js hrmny/turbopack-parallel-routes Change
middleware-b..fest.js gzip 624 B 624 B
middleware-r..fest.js gzip 150 B 151 B N/A
middleware.js gzip 25.6 kB 25.6 kB N/A
edge-runtime..pack.js gzip 1.92 kB 1.92 kB
Overall change 2.55 kB 2.55 kB
Commit: 8ed04d1

@ijjk
Copy link
Member

ijjk commented Oct 25, 2023

Failing test suites

Commit: 0f138f3

pnpm test-dev test/development/acceptance-app/rsc-runtime-errors.test.ts

  • Error overlay - RSC runtime errors > should show runtime errors if invalid client API from node_modules is executed
  • Error overlay - RSC runtime errors > should show runtime errors if invalid server API from node_modules is executed
Expand output

● Error overlay - RSC runtime errors › should show runtime errors if invalid client API from node_modules is executed

thrown: "Exceeded timeout of 120000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  240 |   let next: NextInstance
  241 |   if (!skipped) {
> 242 |     beforeAll(async () => {
      |     ^
  243 |       next = await createNext(options)
  244 |     })
  245 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils.ts:242:5)
  at nextTestSetup (lib/e2e-utils.ts:302:21)
  at describe (lib/e2e-utils.ts:301:3)
  at Object.<anonymous> (development/acceptance-app/rsc-runtime-errors.test.ts:11:19)

● Error overlay - RSC runtime errors › should show runtime errors if invalid server API from node_modules is executed

thrown: "Exceeded timeout of 120000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  240 |   let next: NextInstance
  241 |   if (!skipped) {
> 242 |     beforeAll(async () => {
      |     ^
  243 |       next = await createNext(options)
  244 |     })
  245 |     afterAll(async () => {

  at beforeAll (lib/e2e-utils.ts:242:5)
  at nextTestSetup (lib/e2e-utils.ts:302:21)
  at describe (lib/e2e-utils.ts:301:3)
  at Object.<anonymous> (development/acceptance-app/rsc-runtime-errors.test.ts:11:19)

● Test suite failed to run

thrown: "Exceeded timeout of 120000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

  115 |
  116 | if (typeof afterAll === 'function') {
> 117 |   afterAll(async () => {
      |   ^
  118 |     if (nextInstance) {
  119 |       await nextInstance.destroy()
  120 |       throw new Error(

  at Object.afterAll (lib/e2e-utils.ts:117:3)
  at Object.<anonymous> (development/acceptance-app/rsc-runtime-errors.test.ts:7:19)

Read more about building and testing Next.js in contributing.md.

@ForsakenHarmony ForsakenHarmony force-pushed the hrmny/turbopack-parallel-routes branch 2 times, most recently from 64ad9cd to 2e73eb5 Compare October 25, 2023 23:46
@ForsakenHarmony ForsakenHarmony changed the title feat(turbopack): add support for parallel routes feat(turbopack): add support for parallel routes and route interception Oct 25, 2023
@timneutkens timneutkens merged commit c616582 into canary Oct 26, 2023
51 of 58 checks passed
@timneutkens timneutkens deleted the hrmny/turbopack-parallel-routes branch October 26, 2023 01:50
@github-actions github-actions bot added the locked label Nov 9, 2023
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Nov 9, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
created-by: Turbopack team PRs by the turbopack team locked Turbopack Related to Turbopack with Next.js. type: next
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants