next.js icon indicating copy to clipboard operation
next.js copied to clipboard

hmr error improvements

Open sokra opened this issue 2 years ago • 2 comments

  • use HMR for HMR test (due to unnamed export default this always did a full refresh)
  • show import trace on client-side too
  • hide next.js internal loaders in parse errors
  • show import trace in non-verbose errors too

sokra avatar Oct 29 '21 11:10 sokra

Stats from current PR

Default Build (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary vercel/next.js bugfix/errors Change
buildDuration 17.2s 16.9s -315ms
buildDurationCached 3.5s 3.5s ⚠️ +3ms
nodeModulesSize 199 MB 199 MB ⚠️ +597 B
Page Load Tests Overall decrease ⚠️
vercel/next.js canary vercel/next.js bugfix/errors Change
/ failed reqs 0 0
/ total time (seconds) 2.926 2.852 -0.07
/ avg req/sec 854.38 876.48 +22.1
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.313 1.339 ⚠️ +0.03
/error-in-render avg req/sec 1903.79 1866.76 ⚠️ -37.03
Client Bundles (main, webpack, commons)
vercel/next.js canary vercel/next.js bugfix/errors Change
450.HASH.js gzip 179 B 179 B
framework-HASH.js gzip 42.2 kB 42.2 kB
main-HASH.js gzip 28 kB 28 kB
webpack-HASH.js gzip 1.45 kB 1.45 kB
Overall change 71.9 kB 71.9 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary vercel/next.js bugfix/errors Change
polyfills-a4..dd70.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary vercel/next.js bugfix/errors Change
_app-HASH.js gzip 1.23 kB 1.23 kB
_error-HASH.js gzip 194 B 194 B
amp-HASH.js gzip 312 B 312 B
css-HASH.js gzip 327 B 327 B
dynamic-HASH.js gzip 2.38 kB 2.38 kB
head-HASH.js gzip 350 B 350 B
hooks-HASH.js gzip 635 B 635 B
image-HASH.js gzip 4.44 kB 4.44 kB
index-HASH.js gzip 263 B 263 B
link-HASH.js gzip 1.87 kB 1.87 kB
routerDirect..HASH.js gzip 321 B 321 B
script-HASH.js gzip 383 B 383 B
withRouter-HASH.js gzip 318 B 318 B
334f979574ae..6f4.css gzip 106 B 106 B
Overall change 13.1 kB 13.1 kB
Client Build Manifests
vercel/next.js canary vercel/next.js bugfix/errors Change
_buildManifest.js gzip 459 B 459 B
Overall change 459 B 459 B
Rendered Page Sizes
vercel/next.js canary vercel/next.js bugfix/errors Change
index.html gzip 533 B 533 B
link.html gzip 546 B 546 B
withRouter.html gzip 527 B 527 B
Overall change 1.61 kB 1.61 kB

Default Build with SWC (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary vercel/next.js bugfix/errors Change
buildDuration 14.4s 14.4s -8ms
buildDurationCached 3.5s 3.5s ⚠️ +10ms
nodeModulesSize 199 MB 199 MB ⚠️ +597 B
Page Load Tests Overall decrease ⚠️
vercel/next.js canary vercel/next.js bugfix/errors Change
/ failed reqs 0 0
/ total time (seconds) 2.822 2.854 ⚠️ +0.03
/ avg req/sec 885.93 875.9 ⚠️ -10.03
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.329 1.355 ⚠️ +0.03
/error-in-render avg req/sec 1881.46 1845.67 ⚠️ -35.79
Client Bundles (main, webpack, commons)
vercel/next.js canary vercel/next.js bugfix/errors Change
450.HASH.js gzip 179 B 179 B
framework-HASH.js gzip 42.3 kB 42.3 kB
main-HASH.js gzip 28.2 kB 28.2 kB
webpack-HASH.js gzip 1.43 kB 1.43 kB
Overall change 72.1 kB 72.1 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary vercel/next.js bugfix/errors Change
polyfills-a4..dd70.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary vercel/next.js bugfix/errors Change
_app-HASH.js gzip 1.22 kB 1.22 kB
_error-HASH.js gzip 180 B 180 B
amp-HASH.js gzip 305 B 305 B
css-HASH.js gzip 321 B 321 B
dynamic-HASH.js gzip 2.38 kB 2.38 kB
head-HASH.js gzip 342 B 342 B
hooks-HASH.js gzip 622 B 622 B
image-HASH.js gzip 4.46 kB 4.46 kB
index-HASH.js gzip 256 B 256 B
link-HASH.js gzip 1.91 kB 1.91 kB
routerDirect..HASH.js gzip 314 B 314 B
script-HASH.js gzip 375 B 375 B
withRouter-HASH.js gzip 309 B 309 B
334f979574ae..6f4.css gzip 106 B 106 B
Overall change 13.1 kB 13.1 kB
Client Build Manifests
vercel/next.js canary vercel/next.js bugfix/errors Change
_buildManifest.js gzip 460 B 460 B
Overall change 460 B 460 B
Rendered Page Sizes
vercel/next.js canary vercel/next.js bugfix/errors Change
index.html gzip 534 B 534 B
link.html gzip 548 B 548 B
withRouter.html gzip 528 B 528 B
Overall change 1.61 kB 1.61 kB
Commit: eeff5eef2298dbaedf98c9a5506c022dfe38a5af

ijjk avatar Oct 29 '21 11:10 ijjk

Failing test suites

Commit: eeff5eef2298dbaedf98c9a5506c022dfe38a5af

test/development/basic/hmr.test.ts

  • basic HMR > Error Recovery > should recover after loader parse error in an imported file
Expand output

● basic HMR › Error Recovery › should recover after loader parse error in an imported file

expect(received).toMatchInlineSnapshot(snapshot)

Snapshot name: `basic HMR Error Recovery should recover after loader parse error in an imported file 2`

- Snapshot  - 1
+ Received  + 1

@@ -1,8 +1,8 @@
  ./components/parse-error.js
  Error: error: Unexpected token `}`. Expected this, import, async, function, [ for array literal, { for object literal, @ for decorator, function, class, null, true, false, number, bigint, string, regexp, ` for template literal, (, or an identifier
-
+  
    |
  3 | }}}
    | ^

  Caused by:

  754 |
  755 |         expect(await hasRedbox(browser)).toBe(true)
> 756 |         expect(await getRedboxHeader(browser)).toMatchInlineSnapshot(`
      |                                                ^
  757 |           " 1 of 1 unhandled error
  758 |           Unhandled Runtime Error
  759 |

  at Object.<anonymous> (development/basic/hmr.test.ts:756:48)

ijjk avatar Oct 29 '21 11:10 ijjk