next.js
next.js copied to clipboard
dx: add webpack layer info to the failed bundle file
What
Adding the layer
info to the build error message
Attempted import error: 'useState' is not exported from 'react' (imported as 'useState').
Import trace for requested module:
./node_modules/react-client-pkg/client.js
./node_modules/react-client-pkg/index.js
./app/edge/page.js
../../../../packages/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fedge%2Fpage&page=%2F
edge%2Fpage&appPaths=%2Fedge%2Fpage&pagePath=private-next-app-dir%2Fedge%2Fpage.js&appDir=%2FUsers%2Fhu
ozhi%2Fworkspace%2Fnext.js%2Ftest%2Fe2e%2Fapp-dir%2Fapp-external%2Fapp&pageExtensions=tsx&pageExtension
s=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2Fworkspace%2Fnext.js%2Ftest%2Fe2e%
2Fapp-dir%2Fapp-external&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=
- &preferredRegion=&middlewareConfig=e30%3D!./app/edge/page.js?__next_edge_ssr_entry__
+ &preferredRegion=&middlewareConfig=e30%3D!./app/edge/page.js?__next_edge_ssr_entry__ (layer: rsc)
Why
It can be helpful to discover they're failing with which layer, could be RSC, could be SSR or only in client. Once we know which is exactly failling then can investigate better
Closes NEXT-2391
Failing test suites
Commit: ad12911025cbf02df458ef5062b199d3416c8dd8
pnpm test-dev test/e2e/app-dir/interception-route-prefetch-cache/interception-route-prefetch-cache.test.ts
(PPR)
- interception-route-prefetch-cache > runtime = edge > should render the correct interception when two distinct layouts share the same path structure
Expand output
● interception-route-prefetch-cache › runtime = edge › should render the correct interception when two distinct layouts share the same path structure
thrown: "Exceeded timeout of 120000 ms for a test.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."
6 | describe('interception-route-prefetch-cache', () => {
7 | function runTests({ next }: ReturnType<typeof nextTestSetup>) {
> 8 | it('should render the correct interception when two distinct layouts share the same path structure', async () => {
| ^
9 | const browser = await next.browser('/')
10 |
11 | await browser.elementByCss('[href="/foo"]').click()
at it (e2e/app-dir/interception-route-prefetch-cache/interception-route-prefetch-cache.test.ts:8:5)
at runTests (e2e/app-dir/interception-route-prefetch-cache/interception-route-prefetch-cache.test.ts:91:5)
at describe (e2e/app-dir/interception-route-prefetch-cache/interception-route-prefetch-cache.test.ts:90:3)
at Object.describe (e2e/app-dir/interception-route-prefetch-cache/interception-route-prefetch-cache.test.ts:6:1)
Read more about building and testing Next.js in contributing.md.
Stats from current PR
Default Build
General Overall increase ⚠️
vercel/next.js canary | vercel/next.js add-layer-info-to-error-msg | Change | |
---|---|---|---|
buildDuration | 20.1s | 20.2s | ⚠️ +138ms |
buildDurationCached | 8.5s | 7s | N/A |
nodeModulesSize | 196 MB | 196 MB | ⚠️ +5.82 kB |
nextStartRea..uration (ms) | 429ms | 433ms | N/A |
Client Bundles (main, webpack)
vercel/next.js canary | vercel/next.js add-layer-info-to-error-msg | Change | |
---|---|---|---|
1068-HASH.js gzip | 30.3 kB | 30.3 kB | N/A |
3f784ff6-HASH.js gzip | 53.5 kB | 53.5 kB | N/A |
4944-HASH.js gzip | 5.04 kB | 5.03 kB | N/A |
8423.HASH.js gzip | 181 B | 181 B | ✓ |
framework-HASH.js gzip | 45.2 kB | 45.2 kB | ✓ |
main-app-HASH.js gzip | 241 B | 242 B | N/A |
main-HASH.js gzip | 32.1 kB | 32.1 kB | N/A |
webpack-HASH.js gzip | 1.7 kB | 1.7 kB | ✓ |
Overall change | 47.1 kB | 47.1 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | vercel/next.js add-layer-info-to-error-msg | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | vercel/next.js add-layer-info-to-error-msg | Change | |
---|---|---|---|
_app-HASH.js gzip | 196 B | 196 B | ✓ |
_error-HASH.js gzip | 184 B | 183 B | N/A |
amp-HASH.js gzip | 503 B | 504 B | N/A |
css-HASH.js gzip | 323 B | 324 B | N/A |
dynamic-HASH.js gzip | 2.5 kB | 2.51 kB | N/A |
edge-ssr-HASH.js gzip | 258 B | 259 B | N/A |
head-HASH.js gzip | 353 B | 351 B | N/A |
hooks-HASH.js gzip | 370 B | 370 B | ✓ |
image-HASH.js gzip | 4.21 kB | 4.2 kB | N/A |
index-HASH.js gzip | 259 B | 259 B | ✓ |
link-HASH.js gzip | 2.68 kB | 2.67 kB | N/A |
routerDirect..HASH.js gzip | 313 B | 314 B | N/A |
script-HASH.js gzip | 386 B | 385 B | N/A |
withRouter-HASH.js gzip | 309 B | 311 B | N/A |
1afbb74e6ecf..834.css gzip | 106 B | 106 B | ✓ |
Overall change | 931 B | 931 B | ✓ |
Client Build Manifests
vercel/next.js canary | vercel/next.js add-layer-info-to-error-msg | Change | |
---|---|---|---|
_buildManifest.js gzip | 485 B | 484 B | N/A |
Overall change | 0 B | 0 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | vercel/next.js add-layer-info-to-error-msg | Change | |
---|---|---|---|
index.html gzip | 528 B | 528 B | ✓ |
link.html gzip | 541 B | 541 B | ✓ |
withRouter.html gzip | 524 B | 521 B | N/A |
Overall change | 1.07 kB | 1.07 kB | ✓ |
Edge SSR bundle Size
vercel/next.js canary | vercel/next.js add-layer-info-to-error-msg | Change | |
---|---|---|---|
edge-ssr.js gzip | 94.5 kB | 94.5 kB | N/A |
page.js gzip | 151 kB | 151 kB | N/A |
Overall change | 0 B | 0 B | ✓ |
Middleware size
vercel/next.js canary | vercel/next.js add-layer-info-to-error-msg | Change | |
---|---|---|---|
middleware-b..fest.js gzip | 625 B | 626 B | N/A |
middleware-r..fest.js gzip | 151 B | 151 B | ✓ |
middleware.js gzip | 44.5 kB | 44.6 kB | N/A |
edge-runtime..pack.js gzip | 1.94 kB | 1.94 kB | ✓ |
Overall change | 2.1 kB | 2.1 kB | ✓ |
Next Runtimes
vercel/next.js canary | vercel/next.js add-layer-info-to-error-msg | Change | |
---|---|---|---|
app-page-exp...dev.js gzip | 166 kB | 166 kB | ✓ |
app-page-exp..prod.js gzip | 95.9 kB | 95.9 kB | ✓ |
app-page-tur..prod.js gzip | 97.6 kB | 97.6 kB | ✓ |
app-page-tur..prod.js gzip | 92 kB | 92 kB | ✓ |
app-page.run...dev.js gzip | 136 kB | 136 kB | ✓ |
app-page.run..prod.js gzip | 90.6 kB | 90.6 kB | ✓ |
app-route-ex...dev.js gzip | 22 kB | 22 kB | ✓ |
app-route-ex..prod.js gzip | 14.9 kB | 14.9 kB | ✓ |
app-route-tu..prod.js gzip | 14.9 kB | 14.9 kB | ✓ |
app-route-tu..prod.js gzip | 14.6 kB | 14.6 kB | ✓ |
app-route.ru...dev.js gzip | 21.7 kB | 21.7 kB | ✓ |
app-route.ru..prod.js gzip | 14.6 kB | 14.6 kB | ✓ |
pages-api-tu..prod.js gzip | 9.47 kB | 9.47 kB | ✓ |
pages-api.ru...dev.js gzip | 9.74 kB | 9.74 kB | ✓ |
pages-api.ru..prod.js gzip | 9.47 kB | 9.47 kB | ✓ |
pages-turbo...prod.js gzip | 22.1 kB | 22.1 kB | ✓ |
pages.runtim...dev.js gzip | 22.7 kB | 22.7 kB | ✓ |
pages.runtim..prod.js gzip | 22.1 kB | 22.1 kB | ✓ |
server.runti..prod.js gzip | 50.1 kB | 50.1 kB | ✓ |
Overall change | 927 kB | 927 kB | ✓ |
build cache
vercel/next.js canary | vercel/next.js add-layer-info-to-error-msg | Change | |
---|---|---|---|
0.pack gzip | 1.55 MB | 1.55 MB | N/A |
index.pack gzip | 103 kB | 103 kB | N/A |
Overall change | 0 B | 0 B | ✓ |