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: drop Node.js 16 #56896

Merged
merged 12 commits into from
Oct 16, 2023
Merged

feat: drop Node.js 16 #56896

merged 12 commits into from
Oct 16, 2023

Conversation

balazsorban44
Copy link
Member

@balazsorban44 balazsorban44 commented Oct 16, 2023

What?

BREAKING CHANGE: Bump the minimum required Node.js version.

Why?

Node.js 16 has reached end-of-life in September.

Bumped to 18.18.2 since it contained some security-related patches: https://nodejs.org/en/blog/vulnerability/october-2023-security-releases

How?

Bumped engines where needed, upgraded the workflows.

This will allow us to remove quite a few polyfills, I'll open separate PRs for those.

BREAKING CHANGE:

Node.js 16 has reached end-of-life in September.
@ijjk ijjk added create-next-app Related to our CLI tool for quickly starting a new Next.js application. area: documentation created-by: Next.js team PRs by the Next.js team. type: next labels Oct 16, 2023
@ijjk
Copy link
Member

ijjk commented Oct 16, 2023

Tests Passed

@@ -57,10 +57,6 @@ Next.js allows you to use the latest JavaScript features out of the box. In addi
- [Class Fields](https://github.com/tc39/proposal-class-fields) and [Static Properties](https://github.com/tc39/proposal-static-class-features) (part of stage 3 proposal)
- and more!

### Server-Side Polyfills
Copy link
Member Author

Choose a reason for hiding this comment

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

fetch is not polyfilled anymore (not needed), but I think this section could be its own page anyway.

@ijjk
Copy link
Member

ijjk commented Oct 16, 2023

Stats from current PR

Default Build
General
vercel/next.js canary vercel/next.js chore/bump-node Change
buildDuration 10.6s 10.5s N/A
buildDurationCached 6.1s 6.2s N/A
nodeModulesSize 172 MB 172 MB N/A
nextStartRea..uration (ms) 529ms 539ms N/A
Client Bundles (main, webpack)
vercel/next.js canary vercel/next.js chore/bump-node Change
199-HASH.js gzip 27.5 kB 27.5 kB N/A
3f784ff6-HASH.js gzip 50.9 kB 50.9 kB
99.HASH.js gzip 182 B 182 B
framework-HASH.js gzip 45.3 kB 45.3 kB
main-app-HASH.js gzip 254 B 251 B N/A
main-HASH.js gzip 32.9 kB 32.9 kB N/A
webpack-HASH.js gzip 1.75 kB 1.75 kB N/A
Overall change 96.4 kB 96.4 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary vercel/next.js chore/bump-node Change
polyfills-HASH.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary vercel/next.js chore/bump-node 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.57 kB 2.57 kB N/A
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.35 kB 4.35 kB N/A
index-HASH.js gzip 256 B 256 B
link-HASH.js gzip 2.64 kB 2.63 kB N/A
routerDirect..HASH.js gzip 312 B 311 B N/A
script-HASH.js gzip 385 B 384 B N/A
withRouter-HASH.js gzip 307 B 308 B N/A
1afbb74e6ecf..834.css gzip 106 B 106 B
Overall change 1.08 kB 1.08 kB
Client Build Manifests
vercel/next.js canary vercel/next.js chore/bump-node Change
_buildManifest.js gzip 485 B 482 B N/A
Overall change 0 B 0 B
Rendered Page Sizes
vercel/next.js canary vercel/next.js chore/bump-node Change
index.html gzip 529 B 528 B N/A
link.html gzip 542 B 541 B N/A
withRouter.html gzip 525 B 522 B N/A
Overall change 0 B 0 B
Edge SSR bundle Size
vercel/next.js canary vercel/next.js chore/bump-node Change
edge-ssr.js gzip 93.7 kB 93.7 kB N/A
page.js gzip 152 kB 152 kB N/A
Overall change 0 B 0 B
Middleware size
vercel/next.js canary vercel/next.js chore/bump-node Change
middleware-b..fest.js gzip 624 B 623 B N/A
middleware-r..fest.js gzip 150 B 151 B N/A
middleware.js gzip 22.5 kB 22.5 kB
edge-runtime..pack.js gzip 1.92 kB 1.92 kB
Overall change 24.4 kB 24.4 kB
Commit: e966e22

@balazsorban44 balazsorban44 marked this pull request as ready for review October 16, 2023 17:14
@balazsorban44 balazsorban44 requested review from manovotny and timeyoutakeit and removed request for a team October 16, 2023 17:14
@balazsorban44 balazsorban44 requested a review from styfle October 16, 2023 21:40
@kodiakhq kodiakhq bot merged commit 1ff7f07 into canary Oct 16, 2023
59 checks passed
@kodiakhq kodiakhq bot deleted the chore/bump-node branch October 16, 2023 21:41
balazsorban44 added a commit that referenced this pull request Oct 18, 2023
kodiakhq bot pushed a commit that referenced this pull request Oct 19, 2023
### What?

Note: This is not a breaking change, just removing some unused code.

### Why?

Since #56896 we don't need this, as Node.js 18+ has `fetch` exposed by default.

### How?

Depends on #56896, #56909

We already didn't load `fetch` if `globalThis` had it (ie. Node.js 18+ environments), and since we are dropping support for Node.js 16, these code paths should have no effect on runtime behavior.
@hanayashiki
Copy link

@ljharb

@ljharb
Copy link

ljharb commented Oct 27, 2023

@hanayashiki yes? Why am i being tagged here?

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Nov 11, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
create-next-app Related to our CLI tool for quickly starting a new Next.js application. created-by: Next.js team PRs by the Next.js team. locked type: next
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants