* Check in next-font transform from Next.js repo
* Use next-font transform
* Run transform via custom rule
* Place next/font transform behind cargo feature
This implements basic support for serving the images requested by `next/image` and `next/future/image`. The big missing features are:
- image width resizing (and thus blurry image placeholders)
- image quality encoding
- format re-encoding
This required a lot more work than I expected, because we have to also override the `remotePatterns` to allow using `next/image` with remote images. The only way I found to do this was to override the `__NEXT_IMAGE_OPTS` env var, which is a special object value injected by webpack's `DefinePlugin` as if it were an `process.env` value.
Fixes https://github.com/vercel/web-tooling-internal/issues/5
Porting from https://github.com/vercel/the-three-body/pull/212
Fixes WEB-150
Fixes WEB-2
* Make task stats take less memory by default
* Swap order of condition operands
* TaskStats -> ExportedTaskStats
* Add full stats disclaimers
* Clippy
* Fix duplicate labels
* Move stats type reporting to TurboTasks
* Fix turbotrace and turbopack visualization
* Store last duration and execution as SmallDurations
Co-authored-by: Tobias Koppers <tobias.koppers@googlemail.com>
Commit 1: It took me hours to figure out this unsafe problem...
Commit 2: updates tokio
Commit 3: improves hanging detection to allow to attach notes to event listeners
* Sample many modules in benchmarks + reliability fixes
* Fix depth sampling to be uniform
* Fix Webpack benchmark
* Only use detector component for RSC
* Clippy
* Clippy
measure hmr_to_commit with detector component
add Next.js 13 to benchmarks with RSC and RCC measurements
this tests RSC HMR
make HMR warmup faster
make browser launch lazy
test benchmarks for other bundlers on CI too
# Conflicts:
# .github/workflows/test.yml
# crates/next-dev/benches/mod.rs
* use iterations feature from criterion
move startup, warmup and teardown out of the iteration loop to avoid tracking this time as elapsed time
this allows criterion to use the measurement time correctly for the measured task
prefer slope over mean when possible as it estimates the real time (excluding warmup)
* remove warmup argument
* stop server for next iteration
* refactor
* restore verbose info, exclude file read from timing
* add a little bit of delay between HMR updates
* make a warmup change
* no need to copy template dir for HMR benchmark
* add delay after warmup change
* add watch benchmark
* add/fix comments
* fix env var in CI
This PR changes the ecmascript chunk logic to polyfill `global` with `globalThis`. A more complex and less performant solution (but with the benefit of us knowing the runtime environment) would be to add an effect for simple identifier expressions.
* fixup ropes
* add RSC and RCC for turbopack to benchmarks
RSC: whole page is a server component
RCC: whole page is a client component
add `app` directory to test app
* Fix React Refresh boundary finding
We forgot to enable the transform, which means we were rendering from the root of the app instead of the changed component.
* Update snapshots
* Add comment
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Anthony Shew <anthony.shew@vercel.com>
Co-authored-by: Jared Palmer <jared@jaredpalmer.com>
Co-authored-by: Maia Teegarden <dev@padmaia.rocks>
Co-authored-by: Will Binns-Smith <wbinnssmith@gmail.com>
Co-authored-by: Alex Kirszenberg <alex.kirszenberg@vercel.com>
Co-authored-by: Matt Pocock <mattpocockvoice@gmail.com>
* Store the sourcemap::SourceMap directly, instead of encoding it
* Implement GenerateSourceMap trait and use it to retrieve live maps
* Cleanup and comments!
* Update safety comment
* Rename var
* Update snapshots
* Update snapshots
* Fix tracing errors in SSR
SSR has access to `EcmascriptChunkVc`, not `EcmascriptChunkContentVc`. Client gets access only to `EcmascriptChunkContentVc`
* Fix source map sources on client
Because the JS is nested in dirs, the source needs to be an absolute path.
Co-authored-by: Jared Palmer <jared@jaredpalmer.com>