-
Notifications
You must be signed in to change notification settings - Fork 26.9k
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
Stop hardcoding require('next/dist/compiled/react')
#65122
base: canary
Are you sure you want to change the base?
Conversation
This will be picked up by our `next` alias in `createWebpackAliases`. Any subsequent alias of `next/*` would be ignored e.g. aliasing `next/dist/compiled/react` to the react-server entrypoint. I also hope we don't actually need this since we're already aliasing `react` to `next/dist/compiled/react` in Webpack. At the same time we're not hardcoding `next/dist/compiled/react-dom`. This split in behavior is really confusing. The alternate would be ensuring that our `next` alias becomes a falback. Or list all the public entrypoints. Or remove it entirely.
require('next/dist/compiled/react')
`require('next/dist/compiled/react')
Failing test suitesCommit: 4d78689
Expand output● app dir - with output export and custom distDir (next dev) › should render properly
Read more about building and testing Next.js in contributing.md.
Expand output● app dir - with output export (next dev / next build) › production mode › should error when running next export
Read more about building and testing Next.js in contributing.md.
Expand output● app-dynamic-error › production mode › throws an error when prerendering a page with config dynamic error
Read more about building and testing Next.js in contributing.md.
Expand output● App assetPrefix config › should render correctly with assetPrefix: "/"
Read more about building and testing Next.js in contributing.md.
Expand output● ppr build errors › production mode › within a suspense boundary › should fail the build for uncaught prerender errors
● ppr build errors › production mode › outside of a suspense boundary › should fail the build for uncaught errors
● ppr build errors › production mode › when a postpone call is caught and logged it should › should include a message telling why
Read more about building and testing Next.js in contributing.md.
Expand output● app dir - with output export - trailing slash dev › development mode › should work in dev with trailingSlash 'false'
● app dir - with output export - trailing slash dev › development mode › should work in dev with trailingSlash 'true'
Read more about building and testing Next.js in contributing.md.
Expand output● should not show deopted into client rendering warning
Read more about building and testing Next.js in contributing.md.
Expand output● parallel-routes-and-interception › parallel routes › should gracefully handle when two page segments match the
● parallel-routes-and-interception › parallel routes › should throw a 404 when no matching parallel route is found
● parallel-routes-and-interception › parallel routes › should render nested parallel routes
● parallel-routes-and-interception › parallel routes › should support layout files in parallel routes
● parallel-routes-and-interception › parallel routes › should only scroll to the parallel route that was navigated to
● parallel-routes-and-interception › parallel routes › should apply the catch-all route to the parallel route if no matching route is found
● parallel-routes-and-interception › parallel routes › should match the catch-all routes of the more specific path, if there is more than one catch-all route
● parallel-routes-and-interception › parallel routes › should navigate with a link with prefetch=false
● parallel-routes-and-interception › parallel routes › should display all parallel route params with useParams
● parallel-routes-and-interception › parallel routes › should load CSS for a default page that exports another page
● parallel-routes-and-interception › parallel routes › should handle a loading state
● parallel-routes-and-interception › route intercepting with dynamic routes › should render intercepted route
● parallel-routes-and-interception › route intercepting with dynamic optional catch-all routes › should render intercepted route
● parallel-routes-and-interception › route intercepting with dynamic catch-all routes › should render intercepted route
● parallel-routes-and-interception › route intercepting › should render intercepted route
● parallel-routes-and-interception › route intercepting › should render an intercepted route from a slot
● parallel-routes-and-interception › route intercepting › should render an intercepted route at the top level from a nested path
● parallel-routes-and-interception › route intercepting › should render intercepted route from a nested route
● parallel-routes-and-interception › route intercepting › should re-render the layout on the server when it had a default child route
● parallel-routes-and-interception › route intercepting › should render modal when paired with parallel routes
● parallel-routes-and-interception › route intercepting › should support intercepting with beforeFiles rewrites
● parallel-routes-and-interception › route intercepting › should support intercepting local dynamic sibling routes
● parallel-routes-and-interception › route intercepting › should intercept on routes that contain hyphenated/special dynamic params
● parallel-routes-and-interception › route intercepting › should not have /default paths in the prerender manifest
Read more about building and testing Next.js in contributing.md.
Expand output● Static Image Component Tests › development mode › Should allow an image with a static src to omit height and width
● Static Image Component Tests › development mode › should have containing followed by for priority image
● Static Image Component Tests › development mode › Should automatically provide an image height and width
● Static Image Component Tests › development mode › should use width and height prop to override import
● Static Image Component Tests › development mode › should use height prop to adjust both width and height
● Static Image Component Tests › development mode › should use width prop to adjust both width and height
● Static Image Component Tests › development mode › should add a data URL placeholder to an image
● Static Image Component Tests › development mode › should add a blur placeholder a statically imported jpg
● Static Image Component Tests › development mode › should add a blur placeholder a statically imported png
● Static Image Component Tests › development mode › should add a blur placeholder a statically imported png with fill
● Static Image Component Tests › development mode › should add placeholder with blurDataURL and fill
● Static Image Component Tests › development mode › should add placeholder even when blurDataURL aspect ratio does not match width/height ratio
● Static Image Component Tests › development mode › should load direct imported image
Read more about building and testing Next.js in contributing.md. |
Stats from current PRDefault Build (Increase detected
|
vercel/next.js canary | vercel/next.js sebbie/no-hardcoded-react-alias | Change | |
---|---|---|---|
buildDuration | 15.6s | 14s | N/A |
buildDurationCached | 8s | 6.7s | N/A |
nodeModulesSize | 360 MB | 359 MB | N/A |
nextStartRea..uration (ms) | 389ms | 389ms | ✓ |
Client Bundles (main, webpack) Overall increase ⚠️
vercel/next.js canary | vercel/next.js sebbie/no-hardcoded-react-alias | Change | |
---|---|---|---|
1103-HASH.js gzip | 31.8 kB | 32 kB | |
1a9f679d-HASH.js gzip | 53.5 kB | 53.5 kB | ✓ |
335-HASH.js gzip | 5.09 kB | 5.09 kB | N/A |
7953.HASH.js gzip | 169 B | 169 B | ✓ |
framework-HASH.js gzip | 45.2 kB | 45.2 kB | ✓ |
main-app-HASH.js gzip | 231 B | 228 B | N/A |
main-HASH.js gzip | 31.5 kB | 31.5 kB | N/A |
webpack-HASH.js gzip | 1.65 kB | 1.65 kB | N/A |
Overall change | 131 kB | 131 kB |
Legacy Client Bundles (polyfills)
vercel/next.js canary | vercel/next.js sebbie/no-hardcoded-react-alias | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | vercel/next.js sebbie/no-hardcoded-react-alias | Change | |
---|---|---|---|
_app-HASH.js gzip | 192 B | 193 B | N/A |
_error-HASH.js gzip | 192 B | 193 B | N/A |
amp-HASH.js gzip | 507 B | 511 B | N/A |
css-HASH.js gzip | 341 B | 343 B | N/A |
dynamic-HASH.js gzip | 2.52 kB | 2.52 kB | ✓ |
edge-ssr-HASH.js gzip | 266 B | 265 B | N/A |
head-HASH.js gzip | 362 B | 365 B | N/A |
hooks-HASH.js gzip | 392 B | 392 B | ✓ |
image-HASH.js gzip | 4.32 kB | 4.32 kB | N/A |
index-HASH.js gzip | 268 B | 268 B | ✓ |
link-HASH.js gzip | 2.69 kB | 2.7 kB | N/A |
routerDirect..HASH.js gzip | 329 B | 328 B | N/A |
script-HASH.js gzip | 397 B | 397 B | ✓ |
withRouter-HASH.js gzip | 324 B | 324 B | ✓ |
1afbb74e6ecf..834.css gzip | 106 B | 106 B | ✓ |
Overall change | 4 kB | 4 kB | ✓ |
Client Build Manifests
vercel/next.js canary | vercel/next.js sebbie/no-hardcoded-react-alias | Change | |
---|---|---|---|
_buildManifest.js gzip | 483 B | 484 B | N/A |
Overall change | 0 B | 0 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | vercel/next.js sebbie/no-hardcoded-react-alias | Change | |
---|---|---|---|
index.html gzip | 527 B | 527 B | ✓ |
link.html gzip | 542 B | 541 B | N/A |
withRouter.html gzip | 524 B | 524 B | ✓ |
Overall change | 1.05 kB | 1.05 kB | ✓ |
Edge SSR bundle Size
vercel/next.js canary | vercel/next.js sebbie/no-hardcoded-react-alias | Change | |
---|---|---|---|
edge-ssr.js gzip | 94.7 kB | 94.7 kB | N/A |
page.js gzip | 181 kB | 179 kB | N/A |
Overall change | 0 B | 0 B | ✓ |
Middleware size
vercel/next.js canary | vercel/next.js sebbie/no-hardcoded-react-alias | Change | |
---|---|---|---|
middleware-b..fest.js gzip | 624 B | 625 B | N/A |
middleware-r..fest.js gzip | 156 B | 156 B | ✓ |
middleware.js gzip | 25.7 kB | 25.7 kB | N/A |
edge-runtime..pack.js gzip | 839 B | 839 B | ✓ |
Overall change | 995 B | 995 B | ✓ |
Next Runtimes
vercel/next.js canary | vercel/next.js sebbie/no-hardcoded-react-alias | Change | |
---|---|---|---|
app-page-exp...dev.js gzip | 171 kB | 167 kB | N/A |
app-page-exp..prod.js gzip | 98.4 kB | 96.7 kB | N/A |
app-page-tur..prod.js gzip | 99.9 kB | 98.2 kB | N/A |
app-page-tur..prod.js gzip | 94.3 kB | 94.3 kB | ✓ |
app-page.run...dev.js gzip | 157 kB | 157 kB | ✓ |
app-page.run..prod.js gzip | 93 kB | 93 kB | ✓ |
app-route-ex...dev.js gzip | 21.5 kB | 21.5 kB | ✓ |
app-route-ex..prod.js gzip | 15.2 kB | 15.2 kB | ✓ |
app-route-tu..prod.js gzip | 15.2 kB | 15.2 kB | ✓ |
app-route-tu..prod.js gzip | 15 kB | 15 kB | ✓ |
app-route.ru...dev.js gzip | 21.3 kB | 21.3 kB | ✓ |
app-route.ru..prod.js gzip | 15 kB | 15 kB | ✓ |
pages-api-tu..prod.js gzip | 9.55 kB | 9.55 kB | ✓ |
pages-api.ru...dev.js gzip | 9.82 kB | 9.82 kB | ✓ |
pages-api.ru..prod.js gzip | 9.55 kB | 9.55 kB | ✓ |
pages-turbo...prod.js gzip | 21.5 kB | 21.5 kB | ✓ |
pages.runtim...dev.js gzip | 22.1 kB | 22.1 kB | ✓ |
pages.runtim..prod.js gzip | 21.5 kB | 21.5 kB | ✓ |
server.runti..prod.js gzip | 51.6 kB | 51.6 kB | ✓ |
Overall change | 593 kB | 593 kB | ✓ |
build cache
vercel/next.js canary | vercel/next.js sebbie/no-hardcoded-react-alias | Change | |
---|---|---|---|
0.pack gzip | 1.62 MB | 1.62 MB | N/A |
index.pack gzip | 113 kB | 112 kB | N/A |
Overall change | 0 B | 0 B | ✓ |
Diff details
Diff for edge-ssr.js
Diff too large to display
Diff for 1103-HASH.js
Diff too large to display
Diff for app-page-exp..ntime.dev.js
failed to diff
Diff for app-page-exp..time.prod.js
Diff too large to display
Diff for app-page-tur..time.prod.js
Diff too large to display
This will be picked up by our
next
alias increateWebpackAliases
. Any subsequent alias ofnext/*
would be ignored e.g. aliasingnext/dist/compiled/react
to the react-server entrypoint.I also hope we don't actually need this since we're already aliasing
react
tonext/dist/compiled/react
in Webpack. At the same time we're not hardcodingnext/dist/compiled/react-dom
. This split in behavior is really confusing.The alternate would be ensuring that our
next
alias becomes a fallback. Or list all the public entrypoints.Or remove it entirely: #65123
Closes NEXT-3248