Skip to content

Use absolute document and app paths for the middleware SSR loader#30963

Merged
ijjk merged 5 commits intovercel:canaryfrom
huozhi:rsc/absolute-path
Nov 4, 2021
Merged

Use absolute document and app paths for the middleware SSR loader#30963
ijjk merged 5 commits intovercel:canaryfrom
huozhi:rsc/absolute-path

Conversation

@huozhi
Copy link
Copy Markdown
Contributor

@huozhi huozhi commented Nov 4, 2021

Bug

  • Related issues linked using fixes #number
  • Integration tests added
  • Errors have helpful link attached, see contributing.md

Closes #30949
Fixes #30714

We're using require.resolve to detect if userland custom document page is existed which is not reliable since it might have different extensions. Provide a fallback _document.modern.js in next dist pages for the same purpose but with less hacks.

@ijjk

This comment has been minimized.

ijjk
ijjk previously approved these changes Nov 4, 2021
Copy link
Copy Markdown
Member

@shuding shuding left a comment

Choose a reason for hiding this comment

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

Let's rename packages/next/pages/_document.modern.tsx to packages/next/pages/_document.web.tsx IMO.

Comment thread packages/next/build/entries.ts Outdated
Comment thread packages/next/build/webpack-config.ts Outdated
Comment thread packages/next/taskfile.js Outdated
@ijjk

This comment has been minimized.

@ijjk
Copy link
Copy Markdown
Member

ijjk commented Nov 4, 2021

Stats from current PR

Default Build (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary huozhi/next.js rsc/absolute-path Change
buildDuration 23s 22.8s -154ms
buildDurationCached 4.6s 4.5s -80ms
nodeModulesSize 332 MB 332 MB ⚠️ +673 B
Page Load Tests Overall decrease ⚠️
vercel/next.js canary huozhi/next.js rsc/absolute-path Change
/ failed reqs 0 0
/ total time (seconds) 3.934 3.867 -0.07
/ avg req/sec 635.48 646.53 +11.05
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.974 2.027 ⚠️ +0.05
/error-in-render avg req/sec 1266.52 1233.27 ⚠️ -33.25
Client Bundles (main, webpack, commons)
vercel/next.js canary huozhi/next.js rsc/absolute-path Change
450.HASH.js gzip 179 B 179 B
framework-HASH.js gzip 42.2 kB 42.2 kB
main-HASH.js gzip 28 kB 28 kB
webpack-HASH.js gzip 1.45 kB 1.45 kB
Overall change 71.9 kB 71.9 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary huozhi/next.js rsc/absolute-path Change
polyfills-HASH.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary huozhi/next.js rsc/absolute-path Change
_app-HASH.js gzip 1.23 kB 1.23 kB
_error-HASH.js gzip 194 B 194 B
amp-HASH.js gzip 312 B 312 B
css-HASH.js gzip 327 B 327 B
dynamic-HASH.js gzip 2.38 kB 2.38 kB
head-HASH.js gzip 350 B 350 B
hooks-HASH.js gzip 635 B 635 B
image-HASH.js gzip 4.44 kB 4.44 kB
index-HASH.js gzip 263 B 263 B
link-HASH.js gzip 1.87 kB 1.87 kB
routerDirect..HASH.js gzip 321 B 321 B
script-HASH.js gzip 383 B 383 B
withRouter-HASH.js gzip 318 B 318 B
334f979574ae..6f4.css gzip 106 B 106 B
Overall change 13.1 kB 13.1 kB
Client Build Manifests
vercel/next.js canary huozhi/next.js rsc/absolute-path Change
_buildManifest.js gzip 459 B 459 B
Overall change 459 B 459 B
Rendered Page Sizes
vercel/next.js canary huozhi/next.js rsc/absolute-path Change
index.html gzip 523 B 523 B
link.html gzip 535 B 535 B
withRouter.html gzip 516 B 516 B
Overall change 1.57 kB 1.57 kB

Default Build with SWC (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary huozhi/next.js rsc/absolute-path Change
buildDuration 24.3s 23s -1.3s
buildDurationCached 4.3s 4.5s ⚠️ +278ms
nodeModulesSize 332 MB 332 MB ⚠️ +673 B
Page Load Tests Overall increase ✓
vercel/next.js canary huozhi/next.js rsc/absolute-path Change
/ failed reqs 0 0
/ total time (seconds) 3.687 3.66 -0.03
/ avg req/sec 678.11 683.09 +4.98
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 2.032 1.917 -0.11
/error-in-render avg req/sec 1230.38 1304.1 +73.72
Client Bundles (main, webpack, commons)
vercel/next.js canary huozhi/next.js rsc/absolute-path Change
450.HASH.js gzip 179 B 179 B
framework-HASH.js gzip 42.3 kB 42.3 kB
main-HASH.js gzip 28.2 kB 28.2 kB
webpack-HASH.js gzip 1.43 kB 1.43 kB
Overall change 72.1 kB 72.1 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary huozhi/next.js rsc/absolute-path Change
polyfills-HASH.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary huozhi/next.js rsc/absolute-path Change
_app-HASH.js gzip 1.22 kB 1.22 kB
_error-HASH.js gzip 180 B 180 B
amp-HASH.js gzip 305 B 305 B
css-HASH.js gzip 321 B 321 B
dynamic-HASH.js gzip 2.38 kB 2.38 kB
head-HASH.js gzip 342 B 342 B
hooks-HASH.js gzip 622 B 622 B
image-HASH.js gzip 4.46 kB 4.46 kB
index-HASH.js gzip 256 B 256 B
link-HASH.js gzip 1.91 kB 1.91 kB
routerDirect..HASH.js gzip 314 B 314 B
script-HASH.js gzip 375 B 375 B
withRouter-HASH.js gzip 309 B 309 B
334f979574ae..6f4.css gzip 106 B 106 B
Overall change 13.1 kB 13.1 kB
Client Build Manifests
vercel/next.js canary huozhi/next.js rsc/absolute-path Change
_buildManifest.js gzip 460 B 460 B
Overall change 460 B 460 B
Rendered Page Sizes
vercel/next.js canary huozhi/next.js rsc/absolute-path Change
index.html gzip 522 B 522 B
link.html gzip 535 B 535 B
withRouter.html gzip 516 B 516 B
Overall change 1.57 kB 1.57 kB
Commit: fa4a636

@huozhi huozhi requested a review from shuding November 4, 2021 17:29
@ijjk
Copy link
Copy Markdown
Member

ijjk commented Nov 4, 2021

Failing test suites

Commit: fa4a636

test/integration/preload-viewport/test/index.test.js

  • Prefetching Links in viewport > should not prefetch already loaded scripts
Expand output

● Prefetching Links in viewport › should not prefetch already loaded scripts

expect(received).toBe(expected) // Object.is equality

Expected: false
Received: true

  397 |     expect(hrefs).toEqual([...new Set(hrefs)])
  398 |
> 399 |     // Verify encoding
      |     ^
  400 |     expect(hrefs.some((e) => e.includes(`%5Bhello%5D-`))).toBe(true)
  401 |   })
  402 |

  at Object.<anonymous> (integration/preload-viewport/test/index.test.js:399:5)

@ijjk ijjk merged commit 0c494af into vercel:canary Nov 4, 2021
@ijjk ijjk mentioned this pull request Nov 4, 2021
@vercel vercel locked as resolved and limited conversation to collaborators Jan 27, 2022
@huozhi huozhi deleted the rsc/absolute-path branch February 3, 2022 15:14
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

When concurrentFeatures is enabled and pageExtension options is used, custom _app file does not seem to be found and run properly

3 participants