-
Notifications
You must be signed in to change notification settings - Fork 27.8k
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
fix: compiler error when next/cache is used in a client module #75979
Conversation
Stats from current PRDefault Build (Increase detected
|
vercel/next.js canary | vercel/next.js lubieowoce/ban-next-cache-in-client | Change | |
---|---|---|---|
buildDuration | 22.4s | 18.7s | N/A |
buildDurationCached | 17.7s | 15.1s | N/A |
nodeModulesSize | 393 MB | 393 MB | ✓ |
nextStartRea..uration (ms) | 471ms | 479ms | N/A |
Client Bundles (main, webpack)
vercel/next.js canary | vercel/next.js lubieowoce/ban-next-cache-in-client | Change | |
---|---|---|---|
5306-HASH.js gzip | 55.1 kB | 55.1 kB | N/A |
8276.HASH.js gzip | 169 B | 168 B | N/A |
8377-HASH.js gzip | 5.46 kB | 5.47 kB | N/A |
bccd1874-HASH.js gzip | 53 kB | 53 kB | N/A |
framework-HASH.js gzip | 57.5 kB | 57.5 kB | N/A |
main-app-HASH.js gzip | 245 B | 246 B | N/A |
main-HASH.js gzip | 34.7 kB | 34.7 kB | N/A |
webpack-HASH.js gzip | 1.71 kB | 1.71 kB | N/A |
Overall change | 0 B | 0 B | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | vercel/next.js lubieowoce/ban-next-cache-in-client | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 39.4 kB | 39.4 kB | ✓ |
Overall change | 39.4 kB | 39.4 kB | ✓ |
Client Pages
vercel/next.js canary | vercel/next.js lubieowoce/ban-next-cache-in-client | Change | |
---|---|---|---|
_app-HASH.js gzip | 193 B | 193 B | ✓ |
_error-HASH.js gzip | 193 B | 193 B | ✓ |
amp-HASH.js gzip | 512 B | 510 B | N/A |
css-HASH.js gzip | 343 B | 342 B | N/A |
dynamic-HASH.js gzip | 1.84 kB | 1.84 kB | ✓ |
edge-ssr-HASH.js gzip | 265 B | 265 B | ✓ |
head-HASH.js gzip | 363 B | 362 B | N/A |
hooks-HASH.js gzip | 393 B | 392 B | N/A |
image-HASH.js gzip | 4.59 kB | 4.59 kB | N/A |
index-HASH.js gzip | 268 B | 268 B | ✓ |
link-HASH.js gzip | 2.35 kB | 2.35 kB | N/A |
routerDirect..HASH.js gzip | 328 B | 328 B | ✓ |
script-HASH.js gzip | 397 B | 397 B | ✓ |
withRouter-HASH.js gzip | 323 B | 326 B | N/A |
1afbb74e6ecf..834.css gzip | 106 B | 106 B | ✓ |
Overall change | 3.59 kB | 3.59 kB | ✓ |
Client Build Manifests
vercel/next.js canary | vercel/next.js lubieowoce/ban-next-cache-in-client | Change | |
---|---|---|---|
_buildManifest.js gzip | 748 B | 748 B | ✓ |
Overall change | 748 B | 748 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | vercel/next.js lubieowoce/ban-next-cache-in-client | Change | |
---|---|---|---|
index.html gzip | 525 B | 523 B | N/A |
link.html gzip | 539 B | 538 B | N/A |
withRouter.html gzip | 520 B | 520 B | ✓ |
Overall change | 520 B | 520 B | ✓ |
Edge SSR bundle Size
vercel/next.js canary | vercel/next.js lubieowoce/ban-next-cache-in-client | Change | |
---|---|---|---|
edge-ssr.js gzip | 130 kB | 130 kB | N/A |
page.js gzip | 211 kB | 211 kB | N/A |
Overall change | 0 B | 0 B | ✓ |
Middleware size
vercel/next.js canary | vercel/next.js lubieowoce/ban-next-cache-in-client | Change | |
---|---|---|---|
middleware-b..fest.js gzip | 675 B | 672 B | N/A |
middleware-r..fest.js gzip | 155 B | 156 B | N/A |
middleware.js gzip | 31.3 kB | 31.3 kB | N/A |
edge-runtime..pack.js gzip | 844 B | 844 B | ✓ |
Overall change | 844 B | 844 B | ✓ |
Next Runtimes
vercel/next.js canary | vercel/next.js lubieowoce/ban-next-cache-in-client | Change | |
---|---|---|---|
app-page-exp...dev.js gzip | 394 kB | 394 kB | ✓ |
app-page-exp..prod.js gzip | 132 kB | 132 kB | ✓ |
app-page-tur..prod.js gzip | 145 kB | 145 kB | ✓ |
app-page-tur..prod.js gzip | 141 kB | 141 kB | ✓ |
app-page.run...dev.js gzip | 382 kB | 382 kB | ✓ |
app-page.run..prod.js gzip | 129 kB | 129 kB | ✓ |
app-route-ex...dev.js gzip | 39.4 kB | 39.4 kB | ✓ |
app-route-ex..prod.js gzip | 25.7 kB | 25.7 kB | ✓ |
app-route-tu..prod.js gzip | 25.7 kB | 25.7 kB | ✓ |
app-route-tu..prod.js gzip | 25.5 kB | 25.5 kB | ✓ |
app-route.ru...dev.js gzip | 41 kB | 41 kB | ✓ |
app-route.ru..prod.js gzip | 25.5 kB | 25.5 kB | ✓ |
dist_client_...dev.js gzip | 356 B | 356 B | ✓ |
dist_client_...dev.js gzip | 349 B | 349 B | ✓ |
pages-api-tu..prod.js gzip | 9.69 kB | 9.69 kB | ✓ |
pages-api.ru...dev.js gzip | 11.8 kB | 11.8 kB | ✓ |
pages-api.ru..prod.js gzip | 9.69 kB | 9.69 kB | ✓ |
pages-turbo...prod.js gzip | 22 kB | 22 kB | ✓ |
pages.runtim...dev.js gzip | 31.6 kB | 31.6 kB | ✓ |
pages.runtim..prod.js gzip | 22 kB | 22 kB | ✓ |
server.runti..prod.js gzip | 61.1 kB | 61.1 kB | ✓ |
Overall change | 1.67 MB | 1.67 MB | ✓ |
build cache Overall increase ⚠️
vercel/next.js canary | vercel/next.js lubieowoce/ban-next-cache-in-client | Change | |
---|---|---|---|
0.pack gzip | 2.11 MB | 2.11 MB | N/A |
index.pack gzip | 75.6 kB | 76.1 kB | |
Overall change | 75.6 kB | 76.1 kB |
Diff details
Diff for main-HASH.js
Diff too large to display
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.
I guess adding another test to test/development/acceptance-app/rsc-build-errors.test.ts
makes sense because this was already established for these kinds of errors. But personally, I'd prefer if we just added fixtures to crates/next-custom-transforms/tests/errors/react-server-components/client-graph
instead. We don't need to verify for every compile error that a redbox is opened with the expected error message. In this case it's even done without asserting on the source, which we would see nicely in the output.stderr
files. Running the transform tests is also much quicker than building the native binaries and running an e2e/dev test afterwards.
Tests Passed |
Most functions in
next/cache
don't work on the client, and produce confusing error messages when called there. It's better to just ban them at compile time.NOTE: For legacy/compat reasons, we're allowing
unstable_cache
andunstable_noStore
, since they don't currently throw when called.