For some context:
[https://vercel.slack.com/archives/CGU8HUTUH/p1662124179102509](https://vercel.slack.com/archives/CGU8HUTUH/p1662124179102509)
Continuation of #40221 and #40227
Adds `experimental.fontLoaders`.
SWC next-font-loaders (#40221) transforms font loader (e.g. #40227) call
expressions into an import with the function call arguments as a query.
The imports will be matched by `next-font-loader`. It runs the
configured font loaders - emits font files and returns CSS. Exports are
added, and the font-family is made locally scoped. The returned CSS is
turned into a CSS module with `css-loader` which lets you consume the
font-family.
`FontLoaderManifestPlugin` creates a manifest of the preloaded font
files for each entrypoint. Preload/preconnect are then added in
`_document.tsx` if any font files were found for that path.
Co-authored-by: JJ Kasper <jj@jjsweb.site>
This is a follow-up to https://github.com/vercel/next.js/pull/28227 to ensure `_app` and `_document` HMR correctly when you start the dev server and then add `_app` and `_document`.
## Bug
- [x] Related issues linked using `fixes #number`
- [x] Integration tests added
- [x] Errors have helpful link attached, see `contributing.md`
x-ref: https://github.com/vercel/next.js/issues/27888
This upgrades to ncc@0.25.0 and fixes the previous bugs including:
* ncc not referenced correctly in build
* Babel type errors
* node-fetch, etag, chalk and raw-body dependencies not building with ncc - these have been "un-ncc'd" for now. As they are relatively small dependencies, this doesn't seem too much of an issue and we can follow up in the tracking ncc issue at https://github.com/vercel/ncc/issues/612.
* `yarn dev` issues
Took a lot of bisecting, but the overall diff isn't too bad here in the end.
* CSS Module Support
* Fix Server-Side Render of CSS Modules
* Fix Jest Snapshots
https://github.com/facebook/jest/pull/8492
* Fix snapshots
* Add test for CSS module edit without remounting
* Add tests for dev and production style being applied
* Add missing TODOs
* Include/exclude should only be applied to issuer, not the CSS file itself
* Add CSS modules + node_modules tests
* Test that content is correct
* Create Multi Module Suite
* Add client-side navigation support for CSS
* Add tests for client-side nav
* Add some delays
* Try another fix
* Increase timeout to 3 minutes
* Fix test
* Give all unique directories
* WIP
* Move data experiment
* Do not throw away rules
* Remove test code
* Correct next data behavior
* Add support for async composing
* Remove unnecessary workaround
* Rename Field