rsnext/packages/next/build
Ethan Arrowood e0cc9cd44f
feat(experimental): option to polyfill fetch using undici in Node.js <18 (#40318)
This PR adds a new `experimental.enableUndici` option to let the
developer switch from `next-fetch` to `undici` as the underlying
polyfill for `fetch` in Node.js.

In the current implementation, Next.js makes sure that `fetch` is always
available by using `node-fetch`. However, we do not polyfill in Node.js
18+, since those versions come with their own `fetch` implementation
already, built-in.

Node.js 18+ uses `undici` under the hood, so letting the developer use
`undici` earlier could make the migration easier later on.

Eventually, we hope to be able to stop polyfilling `fetch` in an
upcoming major version of Next.js, shipping less code.


## Bug

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

## Feature

- [ ] Implements an existing feature request or RFC. Make sure the
feature request has been accepted for implementation before opening a
PR.
- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Documentation added
- [ ] Telemetry added. In case of a feature if it's used or not.
- [ ] Errors have helpful link attached, see `contributing.md`

## Documentation / Examples

- [ ] Make sure the linting passes by running `pnpm lint`
- [ ] The examples guidelines are followed from [our contributing
doc](https://github.com/vercel/next.js/blob/canary/contributing.md#adding-examples)

Co-authored-by: Balázs Orbán <info@balazsorban.com>
Co-authored-by: Sukka <isukkaw@gmail.com>
Co-authored-by: JJ Kasper <jj@jjsweb.site>
Co-authored-by: Steven <steven@ceriously.com>
2022-09-27 13:37:28 -07:00
..
analysis [edge] serialize custom config to middleware-manifest (#40881) 2022-09-27 10:30:15 -07:00
babel Remove webpack4 types (#39631) 2022-08-16 09:55:37 +00:00
jest Set __NEXT_NEW_LINK_BEHAVIOR in Jest tests when newNextLinkBehavior is true (#40702) 2022-09-21 22:36:59 -07:00
output Remove webpack4 types (#39631) 2022-08-16 09:55:37 +00:00
polyfills Fix global process testing for the process polyfill (#33220) 2022-01-13 16:44:55 +00:00
swc Add local font loader (#40801) 2022-09-22 12:49:02 -07:00
webpack Font loader support in app (#40898) 2022-09-27 18:10:05 +00:00
compiler.ts Remove webpack4 types (#39631) 2022-08-16 09:55:37 +00:00
cssnano-simple.js Pre-compile more dependencies (#32627) 2021-12-20 14:01:35 +01:00
entries.ts edge-ssr: bundle next/dist as ESM for better tree-shaking (#40251) 2022-09-26 16:56:16 -07:00
generate-build-id.ts Fix generateBuildId type that can be async function (#28040) 2021-08-12 22:26:44 +00:00
index.ts feat(experimental): option to polyfill fetch using undici in Node.js <18 (#40318) 2022-09-27 13:37:28 -07:00
is-writeable.ts Use fs.promises instead of promisify (#12026) 2020-05-02 00:10:19 -04:00
load-jsconfig.ts Add handling for auto installing TypeScript deps and HMRing tsconfig (#39838) 2022-08-23 13:16:47 -05:00
spinner.ts [Feature] Progress bar for static build (#15297) 2020-08-04 09:58:23 +02:00
utils.ts feat(experimental): option to polyfill fetch using undici in Node.js <18 (#40318) 2022-09-27 13:37:28 -07:00
webpack-config.ts Font loader support in app (#40898) 2022-09-27 18:10:05 +00:00
worker.ts Add handling for static generation in app (#40561) 2022-09-19 18:05:28 +00:00
write-build-id.ts Move code shared between server/client to "shared" folder (#26734) 2021-06-30 11:43:31 +02:00