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

Ensure next/dynamic transpiles for tests #24751

Merged
merged 6 commits into from
May 7, 2021

Conversation

ijjk
Copy link
Member

@ijjk ijjk commented May 3, 2021

This ensures the react-loadable babel plugin used for next/dynamic works correctly when the pagesDir info is not provided.

Bug

  • Related issues linked using fixes #number
  • Integration tests added

Fixes: #24566

state.file.opts.caller.pagesDir,
state.file.opts.filename
)
: state.file.opts.filename) + ' -> '
Copy link
Member

Choose a reason for hiding this comment

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

This is not enough. The key is also used on the other side.

Copy link
Member

Choose a reason for hiding this comment

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

const key = `${path.relative(pagesDir, originRequest)} -> ${
dependency.request
}`

Copy link
Member Author

Choose a reason for hiding this comment

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

These files aren't loaded client-side, they are only being tested in the jest environment so this allows the babel transpile to complete and the tests to run, tested against the provided failing repo https://github.com/ballpit/dynamic-10.2-bug

Copy link
Member Author

Choose a reason for hiding this comment

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

We could only allow this if the NODE_ENV is set to test 🤔

Choose a reason for hiding this comment

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

This same issue occurs when running next@10.2 with the latest storybook so I'm unsure if NODE_ENV will cover all the breaking cases :(

@ijjk

This comment has been minimized.

@ijjk ijjk requested a review from sokra May 3, 2021 14:09
@ijjk

This comment has been minimized.

@ijjk

This comment has been minimized.

@ijjk

This comment has been minimized.

@ijjk

This comment has been minimized.

Copy link
Member

@sokra sokra left a comment

Choose a reason for hiding this comment

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

Seems like this problem happens when the babel config resp the next.js preset is used outside of next.js, so it doesn't really matter what the key is.

@ijjk
Copy link
Member Author

ijjk commented May 7, 2021

Stats from current PR

Default Server Mode (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary ijjk/next.js update/next-dynamic-plugin Change
buildDuration 14.3s 14.9s ⚠️ +665ms
buildDurationCached 4.7s 4.5s -155ms
nodeModulesSize 46.6 MB 46.6 MB ⚠️ +301 B
Page Load Tests Overall decrease ⚠️
vercel/next.js canary ijjk/next.js update/next-dynamic-plugin Change
/ failed reqs 0 0
/ total time (seconds) 2.371 2.518 ⚠️ +0.15
/ avg req/sec 1054.28 992.95 ⚠️ -61.33
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.432 1.45 ⚠️ +0.02
/error-in-render avg req/sec 1745.98 1723.79 ⚠️ -22.19
Client Bundles (main, webpack, commons)
vercel/next.js canary ijjk/next.js update/next-dynamic-plugin Change
framework-HASH.js gzip 39.3 kB 39.3 kB
main-HASH.js gzip 19.3 kB 19.3 kB
webpack-HASH.js gzip 996 B 996 B
Overall change 59.6 kB 59.6 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary ijjk/next.js update/next-dynamic-plugin Change
polyfills-HASH.js gzip 31.1 kB 31.1 kB
Overall change 31.1 kB 31.1 kB
Client Pages
vercel/next.js canary ijjk/next.js update/next-dynamic-plugin Change
_app-HASH.js gzip 1.02 kB 1.02 kB
_error-HASH.js gzip 3.05 kB 3.05 kB
amp-HASH.js gzip 526 B 526 B
css-HASH.js gzip 334 B 334 B
hooks-HASH.js gzip 890 B 890 B
index-HASH.js gzip 262 B 262 B
link-HASH.js gzip 1.65 kB 1.65 kB
routerDirect..HASH.js gzip 331 B 331 B
withRouter-HASH.js gzip 329 B 329 B
99a142a5cfae..804.css gzip 125 B 125 B
Overall change 8.52 kB 8.52 kB
Client Build Manifests
vercel/next.js canary ijjk/next.js update/next-dynamic-plugin Change
_buildManifest.js gzip 394 B 394 B
Overall change 394 B 394 B
Rendered Page Sizes
vercel/next.js canary ijjk/next.js update/next-dynamic-plugin Change
index.html gzip 560 B 560 B
link.html gzip 569 B 569 B
withRouter.html gzip 557 B 557 B
Overall change 1.69 kB 1.69 kB

Serverless Mode (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary ijjk/next.js update/next-dynamic-plugin Change
buildDuration 18.1s 17.9s -199ms
buildDurationCached 6.7s 6.6s -59ms
nodeModulesSize 46.6 MB 46.6 MB ⚠️ +301 B
Client Bundles (main, webpack, commons)
vercel/next.js canary ijjk/next.js update/next-dynamic-plugin Change
framework-HASH.js gzip 39.3 kB 39.3 kB
main-HASH.js gzip 19.3 kB 19.3 kB
webpack-HASH.js gzip 996 B 996 B
Overall change 59.6 kB 59.6 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary ijjk/next.js update/next-dynamic-plugin Change
polyfills-HASH.js gzip 31.1 kB 31.1 kB
Overall change 31.1 kB 31.1 kB
Client Pages
vercel/next.js canary ijjk/next.js update/next-dynamic-plugin Change
_app-HASH.js gzip 1.02 kB 1.02 kB
_error-HASH.js gzip 3.05 kB 3.05 kB
amp-HASH.js gzip 526 B 526 B
css-HASH.js gzip 334 B 334 B
hooks-HASH.js gzip 890 B 890 B
index-HASH.js gzip 262 B 262 B
link-HASH.js gzip 1.65 kB 1.65 kB
routerDirect..HASH.js gzip 331 B 331 B
withRouter-HASH.js gzip 329 B 329 B
99a142a5cfae..804.css gzip 125 B 125 B
Overall change 8.52 kB 8.52 kB
Client Build Manifests
vercel/next.js canary ijjk/next.js update/next-dynamic-plugin Change
_buildManifest.js gzip 394 B 394 B
Overall change 394 B 394 B
Serverless bundles Overall decrease ✓
vercel/next.js canary ijjk/next.js update/next-dynamic-plugin Change
_error.js 1.34 MB 1.34 MB
404.html 2.42 kB 2.42 kB
500.html 2.41 kB 2.41 kB
amp.amp.html 10.8 kB 10.8 kB
amp.html 1.61 kB 1.61 kB
css.html 1.79 kB 1.79 kB
hooks.html 1.67 kB 1.67 kB
index.js 1.35 MB 1.35 MB
link.js 1.4 MB 1.4 MB -2 B
routerDirect.js 1.39 MB 1.39 MB
withRouter.js 1.39 MB 1.39 MB
Overall change 6.9 MB 6.9 MB -2 B

Webpack 4 Mode (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary ijjk/next.js update/next-dynamic-plugin Change
buildDuration 12.3s 12.2s -80ms
buildDurationCached 5.2s 5s -218ms
nodeModulesSize 46.6 MB 46.6 MB ⚠️ +301 B
Page Load Tests Overall decrease ⚠️
vercel/next.js canary ijjk/next.js update/next-dynamic-plugin Change
/ failed reqs 0 0
/ total time (seconds) 2.488 2.504 ⚠️ +0.02
/ avg req/sec 1004.86 998.24 ⚠️ -6.62
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.463 1.589 ⚠️ +0.13
/error-in-render avg req/sec 1708.73 1573.66 ⚠️ -135.07
Client Bundles (main, webpack, commons)
vercel/next.js canary ijjk/next.js update/next-dynamic-plugin Change
677f882d2ed8..HASH.js gzip 13.3 kB 13.3 kB
framework.HASH.js gzip 39 kB 39 kB
main-HASH.js gzip 7.19 kB 7.19 kB
webpack-HASH.js gzip 751 B 751 B
Overall change 60.2 kB 60.2 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary ijjk/next.js update/next-dynamic-plugin Change
polyfills-HASH.js gzip 31.3 kB 31.3 kB
Overall change 31.3 kB 31.3 kB
Client Pages
vercel/next.js canary ijjk/next.js update/next-dynamic-plugin Change
_app-HASH.js gzip 1.28 kB 1.28 kB
_error-HASH.js gzip 3.72 kB 3.72 kB
amp-HASH.js gzip 536 B 536 B
css-HASH.js gzip 339 B 339 B
hooks-HASH.js gzip 887 B 887 B
index-HASH.js gzip 227 B 227 B
link-HASH.js gzip 1.64 kB 1.64 kB
routerDirect..HASH.js gzip 303 B 303 B
withRouter-HASH.js gzip 302 B 302 B
21c68fa65a48..217.css gzip 125 B 125 B
Overall change 9.37 kB 9.37 kB
Client Build Manifests
vercel/next.js canary ijjk/next.js update/next-dynamic-plugin Change
_buildManifest.js gzip 420 B 420 B
Overall change 420 B 420 B
Rendered Page Sizes
vercel/next.js canary ijjk/next.js update/next-dynamic-plugin Change
index.html gzip 613 B 613 B
link.html gzip 620 B 620 B
withRouter.html gzip 606 B 606 B
Overall change 1.84 kB 1.84 kB
Commit: 05578e4

@timneutkens timneutkens merged commit 9d25194 into vercel:canary May 7, 2021
@timneutkens timneutkens deleted the update/next-dynamic-plugin branch May 7, 2021 17:21
flybayer pushed a commit to blitz-js/next.js that referenced this pull request Jun 1, 2021
Co-authored-by: Tobias Koppers <tobias.koppers@googlemail.com>
@vercel vercel locked as resolved and limited conversation to collaborators Jan 28, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Jest tests failing when testing components with dynamic import in Next 10.2.0
4 participants