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
Do not polyfill node built-in modules on edge functions #36190
Do not polyfill node built-in modules on edge functions #36190
Conversation
Stats from current PRDefault Build (Increase detected
|
vercel/next.js canary | nkzawa/next.js middleware-no-node-buildin-module | Change | |
---|---|---|---|
buildDuration | 21.9s | 21.5s | -418ms |
buildDurationCached | 8.2s | 8.4s | |
nodeModulesSize | 481 MB | 481 MB |
Page Load Tests Overall increase ✓
vercel/next.js canary | nkzawa/next.js middleware-no-node-buildin-module | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 4.795 | 4.744 | -0.05 |
/ avg req/sec | 521.34 | 527 | +5.66 |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 2.197 | 2.168 | -0.03 |
/error-in-render avg req/sec | 1138.05 | 1152.92 | +14.87 |
Client Bundles (main, webpack)
vercel/next.js canary | nkzawa/next.js middleware-no-node-buildin-module | Change | |
---|---|---|---|
925.HASH.js gzip | 179 B | 179 B | ✓ |
framework-HASH.js gzip | 42 kB | 42 kB | ✓ |
main-HASH.js gzip | 28.6 kB | 28.6 kB | ✓ |
webpack-HASH.js gzip | 1.44 kB | 1.44 kB | ✓ |
Overall change | 72.3 kB | 72.3 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | nkzawa/next.js middleware-no-node-buildin-module | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | nkzawa/next.js middleware-no-node-buildin-module | Change | |
---|---|---|---|
_app-HASH.js gzip | 1.36 kB | 1.36 kB | ✓ |
_error-HASH.js gzip | 192 B | 192 B | ✓ |
amp-HASH.js gzip | 309 B | 309 B | ✓ |
css-HASH.js gzip | 327 B | 327 B | ✓ |
dynamic-HASH.js gzip | 3.04 kB | 3.04 kB | ✓ |
head-HASH.js gzip | 351 B | 351 B | ✓ |
hooks-HASH.js gzip | 920 B | 920 B | ✓ |
image-HASH.js gzip | 5.73 kB | 5.73 kB | ✓ |
index-HASH.js gzip | 263 B | 263 B | ✓ |
link-HASH.js gzip | 2.36 kB | 2.36 kB | ✓ |
routerDirect..HASH.js gzip | 320 B | 320 B | ✓ |
script-HASH.js gzip | 392 B | 392 B | ✓ |
withRouter-HASH.js gzip | 319 B | 319 B | ✓ |
85e02e95b279..7e3.css gzip | 107 B | 107 B | ✓ |
Overall change | 16 kB | 16 kB | ✓ |
Client Build Manifests
vercel/next.js canary | nkzawa/next.js middleware-no-node-buildin-module | Change | |
---|---|---|---|
_buildManifest.js gzip | 461 B | 461 B | ✓ |
Overall change | 461 B | 461 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | nkzawa/next.js middleware-no-node-buildin-module | Change | |
---|---|---|---|
index.html gzip | 531 B | 531 B | ✓ |
link.html gzip | 544 B | 544 B | ✓ |
withRouter.html gzip | 525 B | 525 B | ✓ |
Overall change | 1.6 kB | 1.6 kB | ✓ |
Default Build with SWC (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary | nkzawa/next.js middleware-no-node-buildin-module | Change | |
---|---|---|---|
buildDuration | 24.4s | 24.9s | |
buildDurationCached | 8.3s | 8.4s | |
nodeModulesSize | 481 MB | 481 MB |
Page Load Tests Overall decrease ⚠️
vercel/next.js canary | nkzawa/next.js middleware-no-node-buildin-module | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 4.823 | 4.801 | -0.02 |
/ avg req/sec | 518.33 | 520.69 | +2.36 |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 2.204 | 2.218 | |
/error-in-render avg req/sec | 1134.26 | 1127.38 |
Client Bundles (main, webpack)
vercel/next.js canary | nkzawa/next.js middleware-no-node-buildin-module | Change | |
---|---|---|---|
925.HASH.js gzip | 178 B | 178 B | ✓ |
framework-HASH.js gzip | 42.2 kB | 42.2 kB | ✓ |
main-HASH.js gzip | 29.1 kB | 29.1 kB | ✓ |
webpack-HASH.js gzip | 1.45 kB | 1.45 kB | ✓ |
Overall change | 72.9 kB | 72.9 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | nkzawa/next.js middleware-no-node-buildin-module | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | nkzawa/next.js middleware-no-node-buildin-module | Change | |
---|---|---|---|
_app-HASH.js gzip | 1.35 kB | 1.35 kB | ✓ |
_error-HASH.js gzip | 179 B | 179 B | ✓ |
amp-HASH.js gzip | 313 B | 313 B | ✓ |
css-HASH.js gzip | 325 B | 325 B | ✓ |
dynamic-HASH.js gzip | 3.02 kB | 3.02 kB | ✓ |
head-HASH.js gzip | 351 B | 351 B | ✓ |
hooks-HASH.js gzip | 921 B | 921 B | ✓ |
image-HASH.js gzip | 5.78 kB | 5.78 kB | ✓ |
index-HASH.js gzip | 261 B | 261 B | ✓ |
link-HASH.js gzip | 2.44 kB | 2.44 kB | ✓ |
routerDirect..HASH.js gzip | 322 B | 322 B | ✓ |
script-HASH.js gzip | 393 B | 393 B | ✓ |
withRouter-HASH.js gzip | 317 B | 317 B | ✓ |
85e02e95b279..7e3.css gzip | 107 B | 107 B | ✓ |
Overall change | 16.1 kB | 16.1 kB | ✓ |
Client Build Manifests
vercel/next.js canary | nkzawa/next.js middleware-no-node-buildin-module | Change | |
---|---|---|---|
_buildManifest.js gzip | 457 B | 457 B | ✓ |
Overall change | 457 B | 457 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | nkzawa/next.js middleware-no-node-buildin-module | Change | |
---|---|---|---|
index.html gzip | 531 B | 531 B | ✓ |
link.html gzip | 544 B | 544 B | ✓ |
withRouter.html gzip | 526 B | 526 B | ✓ |
Overall change | 1.6 kB | 1.6 kB | ✓ |
@@ -739,6 +739,13 @@ export default async function build( | |||
) | |||
} | |||
|
|||
const breakingChangeIndex = error.indexOf( | |||
'\n\nBREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@sokra is there a better way to exclude the compilation from showing these, an option maybe?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looks there is no other way as far as I checked https://github.com/webpack/webpack/blob/main/lib/ModuleNotFoundError.js#L63
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@nkzawa this is only the starting point right? Next step being improving the error shown when you import these in the edge runtime? If so the change looks good and it can be landed.
@timneutkens yes, we're going to improve error messages as well |
Seems this causes to break edge runtime. We need to fix that too. |
Changed to apply the fix only to middleware for now, because of the above problem |
Failing test suitesCommit: 526a795
Expand output● middleware environment variables in node server reflect the usage inference › limits process.env to only contain env vars that are inferred from usage
Read more about building and testing Next.js in contributing.md. |
This reverts commit 94db083.
Remove the webpack breaking change message per error since it can be contained in all errors and the current implementation causes to truncate other error messages Follow up for #36190 ## Bug - [x] Related issues linked using `fixes #number` - [ ] Integration tests added - [ ] Errors have helpful link attached, see `contributing.md`
As the title. This is intended to be applied on both middleware and edge functions.
Bug
fixes #number
contributing.md
Feature
fixes #number
contributing.md
Documentation / Examples
yarn lint