Skip to content
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

Making font optimization as default #19250

Closed
wants to merge 30 commits into from

Conversation

prateekbh
Copy link
Contributor

@prateekbh prateekbh commented Nov 17, 2020

@ijjk
Copy link
Member

ijjk commented Nov 17, 2020

Failing test suites

Commit: 46fadf8

test/integration/app-document/test/index.test.js

  • Document and App > Client side > should detect the changes to pages/_app.js and display it
  • Document and App > Client side > should detect the changes to pages/_document.js and display it
  • Document and App > Client side > should keep state between page navigations
  • Document and App > Client side > It should share module state with pages
  • Document and App > Rendering via HTTP > _app > It shows a custom tag
  • Document and App > Rendering via HTTP > _app > It should share module state with pages
  • Document and App > Rendering via HTTP > _app > It should show valid error when thrown in _app getInitialProps
  • Document and App > Rendering via HTTP > _document > It has a custom html class
  • Document and App > Rendering via HTTP > _document > It has a custom body class
  • Document and App > Rendering via HTTP > _document > It injects custom head tags
  • Document and App > Rendering via HTTP > _document > It passes props from Document.getInitialProps to Document
  • Document and App > Rendering via HTTP > _document > It renders ctx.renderPage with enhancer correctly
  • Document and App > Rendering via HTTP > _document > It renders ctx.renderPage with enhanceComponent correctly
  • Document and App > Rendering via HTTP > _document > It renders ctx.renderPage with enhanceApp correctly
  • Document and App > Rendering via HTTP > _document > It renders ctx.renderPage with enhanceApp and enhanceComponent correctly
Expand output

● Document and App › Rendering via HTTP › _document › It has a custom html class

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  15 |       test('It has a custom html class', async () => {
  16 |         const $ = await get$('/')
> 17 |         expect($('html').hasClass('test-html-props')).toBe(true)
     |                                                       ^
  18 |       })
  19 | 
  20 |       test('It has a custom body class', async () => {

  at Object.<anonymous> (integration/app-document/test/rendering.js:17:55)

● Document and App › Rendering via HTTP › _document › It has a custom body class

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  20 |       test('It has a custom body class', async () => {
  21 |         const $ = await get$('/')
> 22 |         expect($('body').hasClass('custom_class')).toBe(true)
     |                                                    ^
  23 |       })
  24 | 
  25 |       test('It injects custom head tags', async () => {

  at Object.<anonymous> (integration/app-document/test/rendering.js:22:52)

● Document and App › Rendering via HTTP › _document › It injects custom head tags

expect(received).toMatch(expected)

Expected substring: "body { margin: 0 }"
Received string:    ""

  25 |       test('It injects custom head tags', async () => {
  26 |         const $ = await get$('/')
> 27 |         expect($('head').text()).toMatch('body { margin: 0 }')
     |                                  ^
  28 |       })
  29 | 
  30 |       test('It passes props from Document.getInitialProps to Document', async () => {

  at Object.<anonymous> (integration/app-document/test/rendering.js:27:34)

● Document and App › Rendering via HTTP › _document › It passes props from Document.getInitialProps to Document

expect(received).toBe(expected) // Object.is equality

Expected: "Hello Document"
Received: ""

  30 |       test('It passes props from Document.getInitialProps to Document', async () => {
  31 |         const $ = await get$('/')
> 32 |         expect($('#custom-property').text()).toBe('Hello Document')
     |                                              ^
  33 |       })
  34 | 
  35 |       test('It adds nonces to all scripts and preload links', async () => {

  at Object.<anonymous> (integration/app-document/test/rendering.js:32:46)

● Document and App › Rendering via HTTP › _document › It renders ctx.renderPage with enhancer correctly

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  54 |         const $ = await get$('/?withEnhancer=true')
  55 |         const nonce = 'RENDERED'
> 56 |         expect($('#render-page-enhance-component').text().includes(nonce)).toBe(
     |                                                                            ^
  57 |           true
  58 |         )
  59 |       })

  at Object.<anonymous> (integration/app-document/test/rendering.js:56:76)

● Document and App › Rendering via HTTP › _document › It renders ctx.renderPage with enhanceComponent correctly

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  62 |         const $ = await get$('/?withEnhanceComponent=true')
  63 |         const nonce = 'RENDERED'
> 64 |         expect($('#render-page-enhance-component').text().includes(nonce)).toBe(
     |                                                                            ^
  65 |           true
  66 |         )
  67 |       })

  at Object.<anonymous> (integration/app-document/test/rendering.js:64:76)

● Document and App › Rendering via HTTP › _document › It renders ctx.renderPage with enhanceApp correctly

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  70 |         const $ = await get$('/?withEnhanceApp=true')
  71 |         const nonce = 'RENDERED'
> 72 |         expect($('#render-page-enhance-app').text().includes(nonce)).toBe(true)
     |                                                                      ^
  73 |       })
  74 | 
  75 |       test('It renders ctx.renderPage with enhanceApp and enhanceComponent correctly', async () => {

  at Object.<anonymous> (integration/app-document/test/rendering.js:72:70)

● Document and App › Rendering via HTTP › _document › It renders ctx.renderPage with enhanceApp and enhanceComponent correctly

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  76 |         const $ = await get$('/?withEnhanceComponent=true&withEnhanceApp=true')
  77 |         const nonce = 'RENDERED'
> 78 |         expect($('#render-page-enhance-app').text().includes(nonce)).toBe(true)
     |                                                                      ^
  79 |         expect($('#render-page-enhance-component').text().includes(nonce)).toBe(
  80 |           true
  81 |         )

  at Object.<anonymous> (integration/app-document/test/rendering.js:78:70)

● Document and App › Rendering via HTTP › _app › It shows a custom tag

expect(received).toBe(expected) // Object.is equality

Expected: "Hello App"
Received: ""

  102 |       test('It shows a custom tag', async () => {
  103 |         const $ = await get$('/')
> 104 |         expect($('#hello-app').text()).toBe('Hello App')
      |                                        ^
  105 |       })
  106 | 
  107 |       // For example react context uses shared module state

  at Object.<anonymous> (integration/app-document/test/rendering.js:104:40)

● Document and App › Rendering via HTTP › _app › It should share module state with pages

expect(received).toBe(expected) // Object.is equality

Expected: "UPDATED"
Received: ""

  109 |       test('It should share module state with pages', async () => {
  110 |         const $ = await get$('/shared')
> 111 |         expect($('#currentstate').text()).toBe('UPDATED')
      |                                           ^
  112 |       })
  113 | 
  114 |       test('It should show valid error when thrown in _app getInitialProps', async () => {

  at Object.<anonymous> (integration/app-document/test/rendering.js:111:43)

● Document and App › Rendering via HTTP › _app › It should show valid error when thrown in _app getInitialProps

expect(received).toMatch(expected)

Expected substring: "page-index"
Received string:    "Internal Server Error"

  117 | 
  118 |         let foundErr = false
> 119 |         expect(await render('/')).toMatch('page-index')
      |                                   ^
  120 |         _app.replace(
  121 |           '// throw _app GIP err here',
  122 |           `throw new Error("${errMsg}")`

  at Object.<anonymous> (integration/app-document/test/rendering.js:119:35)

● Document and App › Client side › should detect the changes to pages/_app.js and display it

NoSuchElementError: no such element: Unable to locate element: {"method":"css selector","selector":"#hello-hmr"}
  (Session info: headless chrome=86.0.4240.183)

  13 |       try {
  14 |         browser = await webdriver(context.appPort, '/')
> 15 |         const text = await browser.elementByCss('#hello-hmr').text()
     |                      ^
  16 |         expect(text).toBe('Hello HMR')
  17 | 
  18 |         // change the content

  at Object.throwDecodedError (../node_modules/selenium-webdriver/lib/error.js:550:15)
  at parseHttpResponse (../node_modules/selenium-webdriver/lib/http.js:565:13)
  at Executor.execute (../node_modules/selenium-webdriver/lib/http.js:491:26)
  at thenableWebDriverProxy.execute (../node_modules/selenium-webdriver/lib/webdriver.js:700:17)
  at Object.<anonymous> (integration/app-document/test/client.js:15:22)

● Document and App › Client side › should detect the changes to pages/_document.js and display it

NoSuchElementError: no such element: Unable to locate element: {"method":"css selector","selector":"#hello-hmr"}
  (Session info: headless chrome=86.0.4240.183)

  40 |       try {
  41 |         browser = await webdriver(context.appPort, '/')
> 42 |         const text = await browser.elementByCss('#hello-hmr').text()
     |                      ^
  43 |         expect(text).toBe('Hello HMR')
  44 | 
  45 |         const editedContent = originalContent.replace(

  at Object.throwDecodedError (../node_modules/selenium-webdriver/lib/error.js:550:15)
  at parseHttpResponse (../node_modules/selenium-webdriver/lib/http.js:565:13)
  at Executor.execute (../node_modules/selenium-webdriver/lib/http.js:491:26)
  at thenableWebDriverProxy.execute (../node_modules/selenium-webdriver/lib/webdriver.js:700:17)
  at Object.<anonymous> (integration/app-document/test/client.js:42:22)

● Document and App › Client side › should keep state between page navigations

NoSuchElementError: no such element: Unable to locate element: {"method":"css selector","selector":"#random-number"}
  (Session info: headless chrome=86.0.4240.183)

  74 |       const browser = await webdriver(context.appPort, '/')
  75 | 
> 76 |       const randomNumber = await browser.elementByCss('#random-number').text()
     |                            ^
  77 | 
  78 |       const switchedRandomNumer = await browser
  79 |         .elementByCss('#about-link')

  at Object.throwDecodedError (../node_modules/selenium-webdriver/lib/error.js:550:15)
  at parseHttpResponse (../node_modules/selenium-webdriver/lib/http.js:565:13)
  at Executor.execute (../node_modules/selenium-webdriver/lib/http.js:491:26)
  at thenableWebDriverProxy.execute (../node_modules/selenium-webdriver/lib/webdriver.js:700:17)
  at Object.<anonymous> (integration/app-document/test/client.js:76:28)

● Document and App › Client side › It should share module state with pages

NoSuchElementError: no such element: Unable to locate element: {"method":"css selector","selector":"#currentstate"}
  (Session info: headless chrome=86.0.4240.183)

  90 |       const browser = await webdriver(context.appPort, '/shared')
  91 | 
> 92 |       const text = await browser.elementByCss('#currentstate').text()
     |                    ^
  93 |       expect(text).toBe('UPDATED CLIENT')
  94 |       await browser.close()
  95 |     })

  at Object.throwDecodedError (../node_modules/selenium-webdriver/lib/error.js:550:15)
  at parseHttpResponse (../node_modules/selenium-webdriver/lib/http.js:565:13)
  at Executor.execute (../node_modules/selenium-webdriver/lib/http.js:491:26)
  at thenableWebDriverProxy.execute (../node_modules/selenium-webdriver/lib/webdriver.js:700:17)
  at Object.<anonymous> (integration/app-document/test/client.js:92:20)

test/integration/build-output/test/index.test.js

  • Build Output > Basic Application Output > should not deviate from snapshot
Expand output

● Build Output › Basic Application Output › should not deviate from snapshot

expect(received).toBeLessThanOrEqual(expected)

Expected: <= 0
Received:    0.10000000000000009

   99 |       expect(indexFirstLoad.endsWith('kB')).toBe(true)
  100 | 
> 101 |       expect(parseFloat(err404Size) - 3.6).toBeLessThanOrEqual(0)
      |                                            ^
  102 |       expect(err404Size.endsWith('kB')).toBe(true)
  103 | 
  104 |       expect(parseFloat(err404FirstLoad) - 65).toBeLessThanOrEqual(0)

  at Object.<anonymous> (integration/build-output/test/index.test.js:101:44)

@ijjk
Copy link
Member

ijjk commented Nov 17, 2020

Failing test suites

Commit: 97932d4

test/integration/app-document/test/index.test.js

  • Document and App > Client side > should detect the changes to pages/_app.js and display it
  • Document and App > Client side > should detect the changes to pages/_document.js and display it
  • Document and App > Client side > should keep state between page navigations
  • Document and App > Client side > It should share module state with pages
  • Document and App > Rendering via HTTP > _app > It shows a custom tag
  • Document and App > Rendering via HTTP > _app > It should share module state with pages
  • Document and App > Rendering via HTTP > _app > It should show valid error when thrown in _app getInitialProps
  • Document and App > Rendering via HTTP > _document > It has a custom html class
  • Document and App > Rendering via HTTP > _document > It has a custom body class
  • Document and App > Rendering via HTTP > _document > It injects custom head tags
  • Document and App > Rendering via HTTP > _document > It passes props from Document.getInitialProps to Document
  • Document and App > Rendering via HTTP > _document > It renders ctx.renderPage with enhancer correctly
  • Document and App > Rendering via HTTP > _document > It renders ctx.renderPage with enhanceComponent correctly
  • Document and App > Rendering via HTTP > _document > It renders ctx.renderPage with enhanceApp correctly
  • Document and App > Rendering via HTTP > _document > It renders ctx.renderPage with enhanceApp and enhanceComponent correctly
Expand output

● Document and App › Rendering via HTTP › _document › It has a custom html class

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  15 |       test('It has a custom html class', async () => {
  16 |         const $ = await get$('/')
> 17 |         expect($('html').hasClass('test-html-props')).toBe(true)
     |                                                       ^
  18 |       })
  19 | 
  20 |       test('It has a custom body class', async () => {

  at Object.<anonymous> (integration/app-document/test/rendering.js:17:55)

● Document and App › Rendering via HTTP › _document › It has a custom body class

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  20 |       test('It has a custom body class', async () => {
  21 |         const $ = await get$('/')
> 22 |         expect($('body').hasClass('custom_class')).toBe(true)
     |                                                    ^
  23 |       })
  24 | 
  25 |       test('It injects custom head tags', async () => {

  at Object.<anonymous> (integration/app-document/test/rendering.js:22:52)

● Document and App › Rendering via HTTP › _document › It injects custom head tags

expect(received).toMatch(expected)

Expected substring: "body { margin: 0 }"
Received string:    ""

  25 |       test('It injects custom head tags', async () => {
  26 |         const $ = await get$('/')
> 27 |         expect($('head').text()).toMatch('body { margin: 0 }')
     |                                  ^
  28 |       })
  29 | 
  30 |       test('It passes props from Document.getInitialProps to Document', async () => {

  at Object.<anonymous> (integration/app-document/test/rendering.js:27:34)

● Document and App › Rendering via HTTP › _document › It passes props from Document.getInitialProps to Document

expect(received).toBe(expected) // Object.is equality

Expected: "Hello Document"
Received: ""

  30 |       test('It passes props from Document.getInitialProps to Document', async () => {
  31 |         const $ = await get$('/')
> 32 |         expect($('#custom-property').text()).toBe('Hello Document')
     |                                              ^
  33 |       })
  34 | 
  35 |       test('It adds nonces to all scripts and preload links', async () => {

  at Object.<anonymous> (integration/app-document/test/rendering.js:32:46)

● Document and App › Rendering via HTTP › _document › It renders ctx.renderPage with enhancer correctly

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  54 |         const $ = await get$('/?withEnhancer=true')
  55 |         const nonce = 'RENDERED'
> 56 |         expect($('#render-page-enhance-component').text().includes(nonce)).toBe(
     |                                                                            ^
  57 |           true
  58 |         )
  59 |       })

  at Object.<anonymous> (integration/app-document/test/rendering.js:56:76)

● Document and App › Rendering via HTTP › _document › It renders ctx.renderPage with enhanceComponent correctly

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  62 |         const $ = await get$('/?withEnhanceComponent=true')
  63 |         const nonce = 'RENDERED'
> 64 |         expect($('#render-page-enhance-component').text().includes(nonce)).toBe(
     |                                                                            ^
  65 |           true
  66 |         )
  67 |       })

  at Object.<anonymous> (integration/app-document/test/rendering.js:64:76)

● Document and App › Rendering via HTTP › _document › It renders ctx.renderPage with enhanceApp correctly

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  70 |         const $ = await get$('/?withEnhanceApp=true')
  71 |         const nonce = 'RENDERED'
> 72 |         expect($('#render-page-enhance-app').text().includes(nonce)).toBe(true)
     |                                                                      ^
  73 |       })
  74 | 
  75 |       test('It renders ctx.renderPage with enhanceApp and enhanceComponent correctly', async () => {

  at Object.<anonymous> (integration/app-document/test/rendering.js:72:70)

● Document and App › Rendering via HTTP › _document › It renders ctx.renderPage with enhanceApp and enhanceComponent correctly

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  76 |         const $ = await get$('/?withEnhanceComponent=true&withEnhanceApp=true')
  77 |         const nonce = 'RENDERED'
> 78 |         expect($('#render-page-enhance-app').text().includes(nonce)).toBe(true)
     |                                                                      ^
  79 |         expect($('#render-page-enhance-component').text().includes(nonce)).toBe(
  80 |           true
  81 |         )

  at Object.<anonymous> (integration/app-document/test/rendering.js:78:70)

● Document and App › Rendering via HTTP › _app › It shows a custom tag

expect(received).toBe(expected) // Object.is equality

Expected: "Hello App"
Received: ""

  102 |       test('It shows a custom tag', async () => {
  103 |         const $ = await get$('/')
> 104 |         expect($('#hello-app').text()).toBe('Hello App')
      |                                        ^
  105 |       })
  106 | 
  107 |       // For example react context uses shared module state

  at Object.<anonymous> (integration/app-document/test/rendering.js:104:40)

● Document and App › Rendering via HTTP › _app › It should share module state with pages

expect(received).toBe(expected) // Object.is equality

Expected: "UPDATED"
Received: ""

  109 |       test('It should share module state with pages', async () => {
  110 |         const $ = await get$('/shared')
> 111 |         expect($('#currentstate').text()).toBe('UPDATED')
      |                                           ^
  112 |       })
  113 | 
  114 |       test('It should show valid error when thrown in _app getInitialProps', async () => {

  at Object.<anonymous> (integration/app-document/test/rendering.js:111:43)

● Document and App › Rendering via HTTP › _app › It should show valid error when thrown in _app getInitialProps

expect(received).toMatch(expected)

Expected substring: "page-index"
Received string:    "Internal Server Error"

  117 | 
  118 |         let foundErr = false
> 119 |         expect(await render('/')).toMatch('page-index')
      |                                   ^
  120 |         _app.replace(
  121 |           '// throw _app GIP err here',
  122 |           `throw new Error("${errMsg}")`

  at Object.<anonymous> (integration/app-document/test/rendering.js:119:35)

● Document and App › Client side › should detect the changes to pages/_app.js and display it

NoSuchElementError: no such element: Unable to locate element: {"method":"css selector","selector":"#hello-hmr"}
  (Session info: headless chrome=86.0.4240.183)

  13 |       try {
  14 |         browser = await webdriver(context.appPort, '/')
> 15 |         const text = await browser.elementByCss('#hello-hmr').text()
     |                      ^
  16 |         expect(text).toBe('Hello HMR')
  17 | 
  18 |         // change the content

  at Object.throwDecodedError (../node_modules/selenium-webdriver/lib/error.js:550:15)
  at parseHttpResponse (../node_modules/selenium-webdriver/lib/http.js:565:13)
  at Executor.execute (../node_modules/selenium-webdriver/lib/http.js:491:26)
  at thenableWebDriverProxy.execute (../node_modules/selenium-webdriver/lib/webdriver.js:700:17)
  at Object.<anonymous> (integration/app-document/test/client.js:15:22)

● Document and App › Client side › should detect the changes to pages/_document.js and display it

NoSuchElementError: no such element: Unable to locate element: {"method":"css selector","selector":"#hello-hmr"}
  (Session info: headless chrome=86.0.4240.183)

  40 |       try {
  41 |         browser = await webdriver(context.appPort, '/')
> 42 |         const text = await browser.elementByCss('#hello-hmr').text()
     |                      ^
  43 |         expect(text).toBe('Hello HMR')
  44 | 
  45 |         const editedContent = originalContent.replace(

  at Object.throwDecodedError (../node_modules/selenium-webdriver/lib/error.js:550:15)
  at parseHttpResponse (../node_modules/selenium-webdriver/lib/http.js:565:13)
  at Executor.execute (../node_modules/selenium-webdriver/lib/http.js:491:26)
  at thenableWebDriverProxy.execute (../node_modules/selenium-webdriver/lib/webdriver.js:700:17)
  at Object.<anonymous> (integration/app-document/test/client.js:42:22)

● Document and App › Client side › should keep state between page navigations

NoSuchElementError: no such element: Unable to locate element: {"method":"css selector","selector":"#random-number"}
  (Session info: headless chrome=86.0.4240.183)

  74 |       const browser = await webdriver(context.appPort, '/')
  75 | 
> 76 |       const randomNumber = await browser.elementByCss('#random-number').text()
     |                            ^
  77 | 
  78 |       const switchedRandomNumer = await browser
  79 |         .elementByCss('#about-link')

  at Object.throwDecodedError (../node_modules/selenium-webdriver/lib/error.js:550:15)
  at parseHttpResponse (../node_modules/selenium-webdriver/lib/http.js:565:13)
  at Executor.execute (../node_modules/selenium-webdriver/lib/http.js:491:26)
  at thenableWebDriverProxy.execute (../node_modules/selenium-webdriver/lib/webdriver.js:700:17)
  at Object.<anonymous> (integration/app-document/test/client.js:76:28)

● Document and App › Client side › It should share module state with pages

NoSuchElementError: no such element: Unable to locate element: {"method":"css selector","selector":"#currentstate"}
  (Session info: headless chrome=86.0.4240.183)

  90 |       const browser = await webdriver(context.appPort, '/shared')
  91 | 
> 92 |       const text = await browser.elementByCss('#currentstate').text()
     |                    ^
  93 |       expect(text).toBe('UPDATED CLIENT')
  94 |       await browser.close()
  95 |     })

  at Object.throwDecodedError (../node_modules/selenium-webdriver/lib/error.js:550:15)
  at parseHttpResponse (../node_modules/selenium-webdriver/lib/http.js:565:13)
  at Executor.execute (../node_modules/selenium-webdriver/lib/http.js:491:26)
  at thenableWebDriverProxy.execute (../node_modules/selenium-webdriver/lib/webdriver.js:700:17)
  at Object.<anonymous> (integration/app-document/test/client.js:92:20)

test/integration/build-output/test/index.test.js

  • Build Output > Basic Application Output > should not deviate from snapshot
Expand output

● Build Output › Basic Application Output › should not deviate from snapshot

expect(received).toBeLessThanOrEqual(expected)

Expected: <= 0
Received:    0.10000000000000009

   99 |       expect(indexFirstLoad.endsWith('kB')).toBe(true)
  100 | 
> 101 |       expect(parseFloat(err404Size) - 3.6).toBeLessThanOrEqual(0)
      |                                            ^
  102 |       expect(err404Size.endsWith('kB')).toBe(true)
  103 | 
  104 |       expect(parseFloat(err404FirstLoad) - 65).toBeLessThanOrEqual(0)

  at Object.<anonymous> (integration/build-output/test/index.test.js:101:44)

@ijjk
Copy link
Member

ijjk commented Nov 17, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall decrease ✓
vercel/next.js canary azukaru/next.js font-defaults Change
buildDuration 12s 12.1s ⚠️ +48ms
nodeModulesSize 85 MB 85 MB -3.4 kB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
/ failed reqs 0 0
/ total time (seconds) 2.217 2.482 ⚠️ +0.27
/ avg req/sec 1127.8 1007.22 ⚠️ -120.58
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.201 1.217 ⚠️ +0.02
/error-in-render avg req/sec 2081.93 2054.4 ⚠️ -27.53
Client Bundles (main, webpack, commons)
vercel/next.js canary azukaru/next.js font-defaults Change
677f882d2ed8..776c.js gzip 12.7 kB 12.7 kB
framework.HASH.js gzip 39 kB 39 kB
main-e1cf8de..941b.js gzip 6.53 kB 6.53 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 58.9 kB 58.9 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary azukaru/next.js font-defaults Change
677f882d2ed8..dule.js gzip 8.26 kB 8.26 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-30e5038..dule.js gzip 5.64 kB 5.64 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 53.6 kB 53.6 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary azukaru/next.js font-defaults Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_app-3b0cf13..85f8.js gzip 1.28 kB 1.28 kB
_error-6f635..c393.js gzip 3.44 kB 3.69 kB ⚠️ +257 B
hooks-d4ffc3..9e0f.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-b618194..5477.js gzip 1.61 kB 1.61 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 8.01 kB 8.27 kB ⚠️ +257 B
Client Pages Modern Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-f2fcc..dule.js gzip 2.29 kB 2.57 kB ⚠️ +280 B
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-9741e7f..dule.js gzip 1.55 kB 1.55 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.64 kB 5.92 kB ⚠️ +280 B
Client Build Manifests
vercel/next.js canary azukaru/next.js font-defaults Change
_buildManifest.js gzip 321 B 321 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 650 B 650 B
Rendered Page Sizes
vercel/next.js canary azukaru/next.js font-defaults Change
index.html gzip 967 B 967 B
link.html gzip 975 B 975 B
withRouter.html gzip 960 B 960 B
Overall change 2.9 kB 2.9 kB

Diffs

Diff for _buildManifest.js
@@ -2,7 +2,7 @@ self.__BUILD_MANIFEST = {
   __rewrites: [],
   "/": ["static\u002Fchunks\u002Fpages\u002Findex-283eed3c1520dcc26e8d.js"],
   "/_error": [
-    "static\u002Fchunks\u002Fpages\u002F_error-760f653e71e48010adf7.js"
+    "static\u002Fchunks\u002Fpages\u002F_error-ed915e640456202180cf.js"
   ],
   "/hooks": [
     "static\u002Fchunks\u002Fpages\u002Fhooks-880757f1d73d6b241fc3.js"
Diff for _buildManifest.module.js
@@ -4,7 +4,7 @@ self.__BUILD_MANIFEST = {
     "static\u002Fchunks\u002Fpages\u002Findex-dc79232991b9d18c3260.module.js"
   ],
   "/_error": [
-    "static\u002Fchunks\u002Fpages\u002F_error-b59ce1d1aef722bdb502.module.js"
+    "static\u002Fchunks\u002Fpages\u002F_error-c140c25017f2d86247a3.module.js"
   ],
   "/hooks": [
     "static\u002Fchunks\u002Fpages\u002Fhooks-56fa58a6f0993d7d36d7.module.js"
Diff for _error-760f6..48010adf7.js
@@ -535,8 +535,23 @@ Also adds support for deduplicated `key` properties
           .map(function(c, i) {
             var key = c.key || i;
 
-            if (false) {
-              var newProps;
+            if (!props.inAmpMode) {
+              if (
+                c.type === "link" &&
+                c.props["href"] && // TODO(prateekbh@): Replace this with const from `constants` when the tree shaking works.
+                ["https://fonts.googleapis.com/css"].some(function(url) {
+                  return c.props["href"].startsWith(url);
+                })
+              ) {
+                var newProps = _objectSpread({}, c.props || {});
+
+                newProps["data-href"] = newProps["href"];
+                newProps["href"] = undefined;
+                return /*#__PURE__*/ _react["default"].cloneElement(
+                  c,
+                  newProps
+                );
+              }
             }
 
             return /*#__PURE__*/ _react["default"].cloneElement(c, {
Diff for _error-b59ce..02.module.js
@@ -446,8 +446,20 @@ Also adds support for deduplicated `key` properties
           .map((c, i) => {
             var key = c.key || i;
 
-            if (false) {
-              var newProps;
+            if (!props.inAmpMode) {
+              if (
+                c.type === "link" &&
+                c.props["href"] && // TODO(prateekbh@): Replace this with const from `constants` when the tree shaking works.
+                ["https://fonts.googleapis.com/css"].some(url =>
+                  c.props["href"].startsWith(url)
+                )
+              ) {
+                var newProps = _objectSpread({}, c.props || {});
+
+                newProps["data-href"] = newProps["href"];
+                newProps["href"] = undefined;
+                return /*#__PURE__*/ _react.default.cloneElement(c, newProps);
+              }
             }
 
             return /*#__PURE__*/ _react.default.cloneElement(c, {

Serverless Mode (Increase detected ⚠️)
General Overall decrease ✓
vercel/next.js canary azukaru/next.js font-defaults Change
buildDuration 13.8s 13.6s -180ms
nodeModulesSize 85 MB 85 MB -3.4 kB
Client Bundles (main, webpack, commons)
vercel/next.js canary azukaru/next.js font-defaults Change
677f882d2ed8..776c.js gzip 12.7 kB 12.7 kB
framework.HASH.js gzip 39 kB 39 kB
main-e1cf8de..941b.js gzip 6.53 kB 6.53 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 58.9 kB 58.9 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary azukaru/next.js font-defaults Change
677f882d2ed8..dule.js gzip 8.26 kB 8.26 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-30e5038..dule.js gzip 5.64 kB 5.64 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 53.6 kB 53.6 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary azukaru/next.js font-defaults Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_app-3b0cf13..85f8.js gzip 1.28 kB 1.28 kB
_error-6f635..c393.js gzip 3.44 kB N/A N/A
hooks-d4ffc3..9e0f.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-b618194..5477.js gzip 1.61 kB 1.61 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
_error-9a3cb..7f54.js gzip N/A 3.69 kB N/A
Overall change 8.01 kB 8.27 kB ⚠️ +257 B
Client Pages Modern Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-f2fcc..dule.js gzip 2.29 kB N/A N/A
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-9741e7f..dule.js gzip 1.55 kB 1.55 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
_error-b82a7..dule.js gzip N/A 2.57 kB N/A
Overall change 5.64 kB 5.92 kB ⚠️ +280 B
Client Build Manifests
vercel/next.js canary azukaru/next.js font-defaults Change
_buildManifest.js gzip 321 B 321 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 650 B 650 B
Serverless bundles Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_error.js 918 kB 919 kB ⚠️ +956 B
404.html 4.61 kB 4.61 kB
hooks.html 3.86 kB 3.86 kB
index.js 918 kB 919 kB ⚠️ +956 B
link.js 977 kB 978 kB ⚠️ +956 B
routerDirect.js 969 kB 970 kB ⚠️ +956 B
withRouter.js 969 kB 970 kB ⚠️ +956 B
Overall change 4.76 MB 4.76 MB ⚠️ +4.78 kB
Commit: 46fadf8

@ijjk
Copy link
Member

ijjk commented Nov 17, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall decrease ✓
vercel/next.js canary azukaru/next.js font-defaults Change
buildDuration 12.2s 11.8s -343ms
nodeModulesSize 85 MB 85 MB -3.4 kB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
/ failed reqs 0 0
/ total time (seconds) 2.157 2.377 ⚠️ +0.22
/ avg req/sec 1158.78 1051.94 ⚠️ -106.84
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.147 1.129 -0.02
/error-in-render avg req/sec 2180.03 2214.86 +34.83
Client Bundles (main, webpack, commons)
vercel/next.js canary azukaru/next.js font-defaults Change
677f882d2ed8..776c.js gzip 12.7 kB 12.7 kB
framework.HASH.js gzip 39 kB 39 kB
main-e1cf8de..941b.js gzip 6.53 kB 6.53 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 58.9 kB 58.9 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary azukaru/next.js font-defaults Change
677f882d2ed8..dule.js gzip 8.26 kB 8.26 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-30e5038..dule.js gzip 5.64 kB 5.64 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 53.6 kB 53.6 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary azukaru/next.js font-defaults Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_app-3b0cf13..85f8.js gzip 1.28 kB 1.28 kB
_error-6f635..c393.js gzip 3.44 kB 3.69 kB ⚠️ +257 B
hooks-d4ffc3..9e0f.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-b618194..5477.js gzip 1.61 kB 1.61 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 8.01 kB 8.27 kB ⚠️ +257 B
Client Pages Modern Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-f2fcc..dule.js gzip 2.29 kB 2.57 kB ⚠️ +280 B
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-9741e7f..dule.js gzip 1.55 kB 1.55 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.64 kB 5.92 kB ⚠️ +280 B
Client Build Manifests
vercel/next.js canary azukaru/next.js font-defaults Change
_buildManifest.js gzip 321 B 321 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 650 B 650 B
Rendered Page Sizes
vercel/next.js canary azukaru/next.js font-defaults Change
index.html gzip 967 B 967 B
link.html gzip 975 B 975 B
withRouter.html gzip 960 B 960 B
Overall change 2.9 kB 2.9 kB

Diffs

Diff for _buildManifest.js
@@ -2,7 +2,7 @@ self.__BUILD_MANIFEST = {
   __rewrites: [],
   "/": ["static\u002Fchunks\u002Fpages\u002Findex-283eed3c1520dcc26e8d.js"],
   "/_error": [
-    "static\u002Fchunks\u002Fpages\u002F_error-760f653e71e48010adf7.js"
+    "static\u002Fchunks\u002Fpages\u002F_error-ed915e640456202180cf.js"
   ],
   "/hooks": [
     "static\u002Fchunks\u002Fpages\u002Fhooks-880757f1d73d6b241fc3.js"
Diff for _buildManifest.module.js
@@ -4,7 +4,7 @@ self.__BUILD_MANIFEST = {
     "static\u002Fchunks\u002Fpages\u002Findex-dc79232991b9d18c3260.module.js"
   ],
   "/_error": [
-    "static\u002Fchunks\u002Fpages\u002F_error-b59ce1d1aef722bdb502.module.js"
+    "static\u002Fchunks\u002Fpages\u002F_error-c140c25017f2d86247a3.module.js"
   ],
   "/hooks": [
     "static\u002Fchunks\u002Fpages\u002Fhooks-56fa58a6f0993d7d36d7.module.js"
Diff for _error-760f6..48010adf7.js
@@ -535,8 +535,23 @@ Also adds support for deduplicated `key` properties
           .map(function(c, i) {
             var key = c.key || i;
 
-            if (false) {
-              var newProps;
+            if (!props.inAmpMode) {
+              if (
+                c.type === "link" &&
+                c.props["href"] && // TODO(prateekbh@): Replace this with const from `constants` when the tree shaking works.
+                ["https://fonts.googleapis.com/css"].some(function(url) {
+                  return c.props["href"].startsWith(url);
+                })
+              ) {
+                var newProps = _objectSpread({}, c.props || {});
+
+                newProps["data-href"] = newProps["href"];
+                newProps["href"] = undefined;
+                return /*#__PURE__*/ _react["default"].cloneElement(
+                  c,
+                  newProps
+                );
+              }
             }
 
             return /*#__PURE__*/ _react["default"].cloneElement(c, {
Diff for _error-b59ce..02.module.js
@@ -446,8 +446,20 @@ Also adds support for deduplicated `key` properties
           .map((c, i) => {
             var key = c.key || i;
 
-            if (false) {
-              var newProps;
+            if (!props.inAmpMode) {
+              if (
+                c.type === "link" &&
+                c.props["href"] && // TODO(prateekbh@): Replace this with const from `constants` when the tree shaking works.
+                ["https://fonts.googleapis.com/css"].some(url =>
+                  c.props["href"].startsWith(url)
+                )
+              ) {
+                var newProps = _objectSpread({}, c.props || {});
+
+                newProps["data-href"] = newProps["href"];
+                newProps["href"] = undefined;
+                return /*#__PURE__*/ _react.default.cloneElement(c, newProps);
+              }
             }
 
             return /*#__PURE__*/ _react.default.cloneElement(c, {

Serverless Mode (Increase detected ⚠️)
General Overall decrease ✓
vercel/next.js canary azukaru/next.js font-defaults Change
buildDuration 13.2s 13.3s ⚠️ +87ms
nodeModulesSize 85 MB 85 MB -3.4 kB
Client Bundles (main, webpack, commons)
vercel/next.js canary azukaru/next.js font-defaults Change
677f882d2ed8..776c.js gzip 12.7 kB 12.7 kB
framework.HASH.js gzip 39 kB 39 kB
main-e1cf8de..941b.js gzip 6.53 kB 6.53 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 58.9 kB 58.9 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary azukaru/next.js font-defaults Change
677f882d2ed8..dule.js gzip 8.26 kB 8.26 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-30e5038..dule.js gzip 5.64 kB 5.64 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 53.6 kB 53.6 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary azukaru/next.js font-defaults Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_app-3b0cf13..85f8.js gzip 1.28 kB 1.28 kB
_error-6f635..c393.js gzip 3.44 kB N/A N/A
hooks-d4ffc3..9e0f.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-b618194..5477.js gzip 1.61 kB 1.61 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
_error-9a3cb..7f54.js gzip N/A 3.69 kB N/A
Overall change 8.01 kB 8.27 kB ⚠️ +257 B
Client Pages Modern Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-f2fcc..dule.js gzip 2.29 kB N/A N/A
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-9741e7f..dule.js gzip 1.55 kB 1.55 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
_error-b82a7..dule.js gzip N/A 2.57 kB N/A
Overall change 5.64 kB 5.92 kB ⚠️ +280 B
Client Build Manifests
vercel/next.js canary azukaru/next.js font-defaults Change
_buildManifest.js gzip 321 B 321 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 650 B 650 B
Serverless bundles Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_error.js 918 kB 919 kB ⚠️ +956 B
404.html 4.61 kB 4.61 kB
hooks.html 3.86 kB 3.86 kB
index.js 918 kB 919 kB ⚠️ +956 B
link.js 977 kB 978 kB ⚠️ +956 B
routerDirect.js 969 kB 970 kB ⚠️ +956 B
withRouter.js 969 kB 970 kB ⚠️ +956 B
Overall change 4.76 MB 4.76 MB ⚠️ +4.78 kB
Commit: 97932d4

@ijjk
Copy link
Member

ijjk commented Nov 17, 2020

Failing test suites

Commit: 6bb937b

test/integration/app-document/test/index.test.js

  • Document and App > Client side > should detect the changes to pages/_app.js and display it
  • Document and App > Client side > should detect the changes to pages/_document.js and display it
  • Document and App > Client side > should keep state between page navigations
  • Document and App > Client side > It should share module state with pages
  • Document and App > Rendering via HTTP > _app > It shows a custom tag
  • Document and App > Rendering via HTTP > _app > It should share module state with pages
  • Document and App > Rendering via HTTP > _app > It should show valid error when thrown in _app getInitialProps
  • Document and App > Rendering via HTTP > _document > It has a custom html class
  • Document and App > Rendering via HTTP > _document > It has a custom body class
  • Document and App > Rendering via HTTP > _document > It injects custom head tags
  • Document and App > Rendering via HTTP > _document > It passes props from Document.getInitialProps to Document
  • Document and App > Rendering via HTTP > _document > It renders ctx.renderPage with enhancer correctly
  • Document and App > Rendering via HTTP > _document > It renders ctx.renderPage with enhanceComponent correctly
  • Document and App > Rendering via HTTP > _document > It renders ctx.renderPage with enhanceApp correctly
  • Document and App > Rendering via HTTP > _document > It renders ctx.renderPage with enhanceApp and enhanceComponent correctly
Expand output

● Document and App › Rendering via HTTP › _document › It has a custom html class

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  15 |       test('It has a custom html class', async () => {
  16 |         const $ = await get$('/')
> 17 |         expect($('html').hasClass('test-html-props')).toBe(true)
     |                                                       ^
  18 |       })
  19 | 
  20 |       test('It has a custom body class', async () => {

  at Object.<anonymous> (integration/app-document/test/rendering.js:17:55)

● Document and App › Rendering via HTTP › _document › It has a custom body class

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  20 |       test('It has a custom body class', async () => {
  21 |         const $ = await get$('/')
> 22 |         expect($('body').hasClass('custom_class')).toBe(true)
     |                                                    ^
  23 |       })
  24 | 
  25 |       test('It injects custom head tags', async () => {

  at Object.<anonymous> (integration/app-document/test/rendering.js:22:52)

● Document and App › Rendering via HTTP › _document › It injects custom head tags

expect(received).toMatch(expected)

Expected substring: "body { margin: 0 }"
Received string:    ""

  25 |       test('It injects custom head tags', async () => {
  26 |         const $ = await get$('/')
> 27 |         expect($('head').text()).toMatch('body { margin: 0 }')
     |                                  ^
  28 |       })
  29 | 
  30 |       test('It passes props from Document.getInitialProps to Document', async () => {

  at Object.<anonymous> (integration/app-document/test/rendering.js:27:34)

● Document and App › Rendering via HTTP › _document › It passes props from Document.getInitialProps to Document

expect(received).toBe(expected) // Object.is equality

Expected: "Hello Document"
Received: ""

  30 |       test('It passes props from Document.getInitialProps to Document', async () => {
  31 |         const $ = await get$('/')
> 32 |         expect($('#custom-property').text()).toBe('Hello Document')
     |                                              ^
  33 |       })
  34 | 
  35 |       test('It adds nonces to all scripts and preload links', async () => {

  at Object.<anonymous> (integration/app-document/test/rendering.js:32:46)

● Document and App › Rendering via HTTP › _document › It renders ctx.renderPage with enhancer correctly

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  54 |         const $ = await get$('/?withEnhancer=true')
  55 |         const nonce = 'RENDERED'
> 56 |         expect($('#render-page-enhance-component').text().includes(nonce)).toBe(
     |                                                                            ^
  57 |           true
  58 |         )
  59 |       })

  at Object.<anonymous> (integration/app-document/test/rendering.js:56:76)

● Document and App › Rendering via HTTP › _document › It renders ctx.renderPage with enhanceComponent correctly

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  62 |         const $ = await get$('/?withEnhanceComponent=true')
  63 |         const nonce = 'RENDERED'
> 64 |         expect($('#render-page-enhance-component').text().includes(nonce)).toBe(
     |                                                                            ^
  65 |           true
  66 |         )
  67 |       })

  at Object.<anonymous> (integration/app-document/test/rendering.js:64:76)

● Document and App › Rendering via HTTP › _document › It renders ctx.renderPage with enhanceApp correctly

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  70 |         const $ = await get$('/?withEnhanceApp=true')
  71 |         const nonce = 'RENDERED'
> 72 |         expect($('#render-page-enhance-app').text().includes(nonce)).toBe(true)
     |                                                                      ^
  73 |       })
  74 | 
  75 |       test('It renders ctx.renderPage with enhanceApp and enhanceComponent correctly', async () => {

  at Object.<anonymous> (integration/app-document/test/rendering.js:72:70)

● Document and App › Rendering via HTTP › _document › It renders ctx.renderPage with enhanceApp and enhanceComponent correctly

expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false

  76 |         const $ = await get$('/?withEnhanceComponent=true&withEnhanceApp=true')
  77 |         const nonce = 'RENDERED'
> 78 |         expect($('#render-page-enhance-app').text().includes(nonce)).toBe(true)
     |                                                                      ^
  79 |         expect($('#render-page-enhance-component').text().includes(nonce)).toBe(
  80 |           true
  81 |         )

  at Object.<anonymous> (integration/app-document/test/rendering.js:78:70)

● Document and App › Rendering via HTTP › _app › It shows a custom tag

expect(received).toBe(expected) // Object.is equality

Expected: "Hello App"
Received: ""

  102 |       test('It shows a custom tag', async () => {
  103 |         const $ = await get$('/')
> 104 |         expect($('#hello-app').text()).toBe('Hello App')
      |                                        ^
  105 |       })
  106 | 
  107 |       // For example react context uses shared module state

  at Object.<anonymous> (integration/app-document/test/rendering.js:104:40)

● Document and App › Rendering via HTTP › _app › It should share module state with pages

expect(received).toBe(expected) // Object.is equality

Expected: "UPDATED"
Received: ""

  109 |       test('It should share module state with pages', async () => {
  110 |         const $ = await get$('/shared')
> 111 |         expect($('#currentstate').text()).toBe('UPDATED')
      |                                           ^
  112 |       })
  113 | 
  114 |       test('It should show valid error when thrown in _app getInitialProps', async () => {

  at Object.<anonymous> (integration/app-document/test/rendering.js:111:43)

● Document and App › Rendering via HTTP › _app › It should show valid error when thrown in _app getInitialProps

expect(received).toMatch(expected)

Expected substring: "page-index"
Received string:    "Internal Server Error"

  117 | 
  118 |         let foundErr = false
> 119 |         expect(await render('/')).toMatch('page-index')
      |                                   ^
  120 |         _app.replace(
  121 |           '// throw _app GIP err here',
  122 |           `throw new Error("${errMsg}")`

  at Object.<anonymous> (integration/app-document/test/rendering.js:119:35)

● Document and App › Client side › should detect the changes to pages/_app.js and display it

NoSuchElementError: no such element: Unable to locate element: {"method":"css selector","selector":"#hello-hmr"}
  (Session info: headless chrome=86.0.4240.183)

  13 |       try {
  14 |         browser = await webdriver(context.appPort, '/')
> 15 |         const text = await browser.elementByCss('#hello-hmr').text()
     |                      ^
  16 |         expect(text).toBe('Hello HMR')
  17 | 
  18 |         // change the content

  at Object.throwDecodedError (../node_modules/selenium-webdriver/lib/error.js:550:15)
  at parseHttpResponse (../node_modules/selenium-webdriver/lib/http.js:565:13)
  at Executor.execute (../node_modules/selenium-webdriver/lib/http.js:491:26)
  at thenableWebDriverProxy.execute (../node_modules/selenium-webdriver/lib/webdriver.js:700:17)
  at Object.<anonymous> (integration/app-document/test/client.js:15:22)

● Document and App › Client side › should detect the changes to pages/_document.js and display it

NoSuchElementError: no such element: Unable to locate element: {"method":"css selector","selector":"#hello-hmr"}
  (Session info: headless chrome=86.0.4240.183)

  40 |       try {
  41 |         browser = await webdriver(context.appPort, '/')
> 42 |         const text = await browser.elementByCss('#hello-hmr').text()
     |                      ^
  43 |         expect(text).toBe('Hello HMR')
  44 | 
  45 |         const editedContent = originalContent.replace(

  at Object.throwDecodedError (../node_modules/selenium-webdriver/lib/error.js:550:15)
  at parseHttpResponse (../node_modules/selenium-webdriver/lib/http.js:565:13)
  at Executor.execute (../node_modules/selenium-webdriver/lib/http.js:491:26)
  at thenableWebDriverProxy.execute (../node_modules/selenium-webdriver/lib/webdriver.js:700:17)
  at Object.<anonymous> (integration/app-document/test/client.js:42:22)

● Document and App › Client side › should keep state between page navigations

NoSuchElementError: no such element: Unable to locate element: {"method":"css selector","selector":"#random-number"}
  (Session info: headless chrome=86.0.4240.183)

  74 |       const browser = await webdriver(context.appPort, '/')
  75 | 
> 76 |       const randomNumber = await browser.elementByCss('#random-number').text()
     |                            ^
  77 | 
  78 |       const switchedRandomNumer = await browser
  79 |         .elementByCss('#about-link')

  at Object.throwDecodedError (../node_modules/selenium-webdriver/lib/error.js:550:15)
  at parseHttpResponse (../node_modules/selenium-webdriver/lib/http.js:565:13)
  at Executor.execute (../node_modules/selenium-webdriver/lib/http.js:491:26)
  at thenableWebDriverProxy.execute (../node_modules/selenium-webdriver/lib/webdriver.js:700:17)
  at Object.<anonymous> (integration/app-document/test/client.js:76:28)

● Document and App › Client side › It should share module state with pages

NoSuchElementError: no such element: Unable to locate element: {"method":"css selector","selector":"#currentstate"}
  (Session info: headless chrome=86.0.4240.183)

  90 |       const browser = await webdriver(context.appPort, '/shared')
  91 | 
> 92 |       const text = await browser.elementByCss('#currentstate').text()
     |                    ^
  93 |       expect(text).toBe('UPDATED CLIENT')
  94 |       await browser.close()
  95 |     })

  at Object.throwDecodedError (../node_modules/selenium-webdriver/lib/error.js:550:15)
  at parseHttpResponse (../node_modules/selenium-webdriver/lib/http.js:565:13)
  at Executor.execute (../node_modules/selenium-webdriver/lib/http.js:491:26)
  at thenableWebDriverProxy.execute (../node_modules/selenium-webdriver/lib/webdriver.js:700:17)
  at Object.<anonymous> (integration/app-document/test/client.js:92:20)

test/integration/dist-dir/test/index.test.js

  • distDir > should handle null/undefined distDir
  • distDir > With basic usage > should not build the app within the default .next directory
Expand output

● distDir › With basic usage › should not build the app within the default .next directory

expect(received).toBeFalsy()

Received: true

  40 |       expect(
  41 |         await fs.exists(join(__dirname, `/../.next/${BUILD_ID_FILE}`))
> 42 |       ).toBeFalsy()
     |         ^
  43 |     })
  44 |   })
  45 | 

  at Object.<anonymous> (integration/dist-dir/test/index.test.js:42:9)

● distDir › should handle null/undefined distDir

expect(received).toBe(expected) // Object.is equality

Expected: 0
Received: 106

  61 |     await fs.writeFile(nextConfig, origNextConfig)
  62 | 
> 63 |     expect(stderr.length).toBe(0)
     |                           ^
  64 |   })
  65 | })
  66 | 

  at Object.<anonymous> (integration/dist-dir/test/index.test.js:63:27)

test/integration/build-output/test/index.test.js

  • Build Output > Basic Application Output > should not deviate from snapshot
Expand output

● Build Output › Basic Application Output › should not deviate from snapshot

expect(received).toBeLessThanOrEqual(expected)

Expected: <= 0
Received:    0.10000000000000009

   99 |       expect(indexFirstLoad.endsWith('kB')).toBe(true)
  100 | 
> 101 |       expect(parseFloat(err404Size) - 3.6).toBeLessThanOrEqual(0)
      |                                            ^
  102 |       expect(err404Size.endsWith('kB')).toBe(true)
  103 | 
  104 |       expect(parseFloat(err404FirstLoad) - 65).toBeLessThanOrEqual(0)

  at Object.<anonymous> (integration/build-output/test/index.test.js:101:44)

@ijjk
Copy link
Member

ijjk commented Nov 17, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall decrease ✓
vercel/next.js canary azukaru/next.js font-defaults Change
buildDuration 13.6s 13.8s ⚠️ +206ms
nodeModulesSize 85 MB 85 MB -3.4 kB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
/ failed reqs 0 0
/ total time (seconds) 2.679 2.937 ⚠️ +0.26
/ avg req/sec 933.3 851.17 ⚠️ -82.13
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.606 1.693 ⚠️ +0.09
/error-in-render avg req/sec 1557 1476.54 ⚠️ -80.46
Client Bundles (main, webpack, commons)
vercel/next.js canary azukaru/next.js font-defaults Change
677f882d2ed8..776c.js gzip 12.7 kB 12.7 kB
framework.HASH.js gzip 39 kB 39 kB
main-e1cf8de..941b.js gzip 6.53 kB 6.53 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 58.9 kB 58.9 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary azukaru/next.js font-defaults Change
677f882d2ed8..dule.js gzip 8.26 kB 8.26 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-30e5038..dule.js gzip 5.64 kB 5.64 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 53.6 kB 53.6 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary azukaru/next.js font-defaults Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_app-3b0cf13..85f8.js gzip 1.28 kB 1.28 kB
_error-6f635..c393.js gzip 3.44 kB 3.69 kB ⚠️ +257 B
hooks-d4ffc3..9e0f.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-b618194..5477.js gzip 1.61 kB 1.61 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 8.01 kB 8.27 kB ⚠️ +257 B
Client Pages Modern Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-f2fcc..dule.js gzip 2.29 kB 2.57 kB ⚠️ +280 B
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-9741e7f..dule.js gzip 1.55 kB 1.55 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.64 kB 5.92 kB ⚠️ +280 B
Client Build Manifests
vercel/next.js canary azukaru/next.js font-defaults Change
_buildManifest.js gzip 321 B 321 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 650 B 650 B
Rendered Page Sizes
vercel/next.js canary azukaru/next.js font-defaults Change
index.html gzip 967 B 967 B
link.html gzip 975 B 975 B
withRouter.html gzip 960 B 960 B
Overall change 2.9 kB 2.9 kB

Diffs

Diff for _buildManifest.js
@@ -2,7 +2,7 @@ self.__BUILD_MANIFEST = {
   __rewrites: [],
   "/": ["static\u002Fchunks\u002Fpages\u002Findex-283eed3c1520dcc26e8d.js"],
   "/_error": [
-    "static\u002Fchunks\u002Fpages\u002F_error-760f653e71e48010adf7.js"
+    "static\u002Fchunks\u002Fpages\u002F_error-ed915e640456202180cf.js"
   ],
   "/hooks": [
     "static\u002Fchunks\u002Fpages\u002Fhooks-880757f1d73d6b241fc3.js"
Diff for _buildManifest.module.js
@@ -4,7 +4,7 @@ self.__BUILD_MANIFEST = {
     "static\u002Fchunks\u002Fpages\u002Findex-dc79232991b9d18c3260.module.js"
   ],
   "/_error": [
-    "static\u002Fchunks\u002Fpages\u002F_error-b59ce1d1aef722bdb502.module.js"
+    "static\u002Fchunks\u002Fpages\u002F_error-c140c25017f2d86247a3.module.js"
   ],
   "/hooks": [
     "static\u002Fchunks\u002Fpages\u002Fhooks-56fa58a6f0993d7d36d7.module.js"
Diff for _error-760f6..48010adf7.js
@@ -535,8 +535,23 @@ Also adds support for deduplicated `key` properties
           .map(function(c, i) {
             var key = c.key || i;
 
-            if (false) {
-              var newProps;
+            if (!props.inAmpMode) {
+              if (
+                c.type === "link" &&
+                c.props["href"] && // TODO(prateekbh@): Replace this with const from `constants` when the tree shaking works.
+                ["https://fonts.googleapis.com/css"].some(function(url) {
+                  return c.props["href"].startsWith(url);
+                })
+              ) {
+                var newProps = _objectSpread({}, c.props || {});
+
+                newProps["data-href"] = newProps["href"];
+                newProps["href"] = undefined;
+                return /*#__PURE__*/ _react["default"].cloneElement(
+                  c,
+                  newProps
+                );
+              }
             }
 
             return /*#__PURE__*/ _react["default"].cloneElement(c, {
Diff for _error-b59ce..02.module.js
@@ -446,8 +446,20 @@ Also adds support for deduplicated `key` properties
           .map((c, i) => {
             var key = c.key || i;
 
-            if (false) {
-              var newProps;
+            if (!props.inAmpMode) {
+              if (
+                c.type === "link" &&
+                c.props["href"] && // TODO(prateekbh@): Replace this with const from `constants` when the tree shaking works.
+                ["https://fonts.googleapis.com/css"].some(url =>
+                  c.props["href"].startsWith(url)
+                )
+              ) {
+                var newProps = _objectSpread({}, c.props || {});
+
+                newProps["data-href"] = newProps["href"];
+                newProps["href"] = undefined;
+                return /*#__PURE__*/ _react.default.cloneElement(c, newProps);
+              }
             }
 
             return /*#__PURE__*/ _react.default.cloneElement(c, {

Serverless Mode (Increase detected ⚠️)
General Overall decrease ✓
vercel/next.js canary azukaru/next.js font-defaults Change
buildDuration 15.3s 15.3s ⚠️ +45ms
nodeModulesSize 85 MB 85 MB -3.4 kB
Client Bundles (main, webpack, commons)
vercel/next.js canary azukaru/next.js font-defaults Change
677f882d2ed8..776c.js gzip 12.7 kB 12.7 kB
framework.HASH.js gzip 39 kB 39 kB
main-e1cf8de..941b.js gzip 6.53 kB 6.53 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 58.9 kB 58.9 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary azukaru/next.js font-defaults Change
677f882d2ed8..dule.js gzip 8.26 kB 8.26 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-30e5038..dule.js gzip 5.64 kB 5.64 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 53.6 kB 53.6 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary azukaru/next.js font-defaults Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_app-3b0cf13..85f8.js gzip 1.28 kB 1.28 kB
_error-6f635..c393.js gzip 3.44 kB N/A N/A
hooks-d4ffc3..9e0f.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-b618194..5477.js gzip 1.61 kB 1.61 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
_error-9a3cb..7f54.js gzip N/A 3.69 kB N/A
Overall change 8.01 kB 8.27 kB ⚠️ +257 B
Client Pages Modern Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-f2fcc..dule.js gzip 2.29 kB N/A N/A
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-9741e7f..dule.js gzip 1.55 kB 1.55 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
_error-b82a7..dule.js gzip N/A 2.57 kB N/A
Overall change 5.64 kB 5.92 kB ⚠️ +280 B
Client Build Manifests
vercel/next.js canary azukaru/next.js font-defaults Change
_buildManifest.js gzip 321 B 321 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 650 B 650 B
Serverless bundles Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_error.js 918 kB 919 kB ⚠️ +956 B
404.html 4.61 kB 4.61 kB
hooks.html 3.86 kB 3.86 kB
index.js 918 kB 919 kB ⚠️ +956 B
link.js 977 kB 978 kB ⚠️ +956 B
routerDirect.js 969 kB 970 kB ⚠️ +956 B
withRouter.js 969 kB 970 kB ⚠️ +956 B
Overall change 4.76 MB 4.76 MB ⚠️ +4.78 kB
Commit: 6bb937b

@ijjk
Copy link
Member

ijjk commented Nov 17, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
buildDuration 13.8s 13.8s -7ms
nodeModulesSize 85 MB 85 MB ⚠️ +636 B
Page Load Tests Overall increase ✓
vercel/next.js canary azukaru/next.js font-defaults Change
/ failed reqs 0 0
/ total time (seconds) 2.478 2.505 ⚠️ +0.03
/ avg req/sec 1009.02 997.91 ⚠️ -11.11
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.334 1.3 -0.03
/error-in-render avg req/sec 1873.53 1923.55 +50.02
Client Bundles (main, webpack, commons)
vercel/next.js canary azukaru/next.js font-defaults Change
677f882d2ed8..776c.js gzip 12.7 kB 12.7 kB
framework.HASH.js gzip 39 kB 39 kB
main-e1cf8de..941b.js gzip 6.53 kB 6.53 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 58.9 kB 58.9 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary azukaru/next.js font-defaults Change
677f882d2ed8..dule.js gzip 8.26 kB 8.26 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-30e5038..dule.js gzip 5.64 kB 5.64 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 53.6 kB 53.6 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary azukaru/next.js font-defaults Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary azukaru/next.js font-defaults Change
_app-3b0cf13..85f8.js gzip 1.28 kB 1.28 kB
_error-6f635..c393.js gzip 3.44 kB 3.44 kB
hooks-d4ffc3..9e0f.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-b618194..5477.js gzip 1.61 kB 1.61 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 8.01 kB 8.01 kB
Client Pages Modern
vercel/next.js canary azukaru/next.js font-defaults Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-f2fcc..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-9741e7f..dule.js gzip 1.55 kB 1.55 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.64 kB 5.64 kB
Client Build Manifests
vercel/next.js canary azukaru/next.js font-defaults Change
_buildManifest.js gzip 321 B 321 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 650 B 650 B
Rendered Page Sizes
vercel/next.js canary azukaru/next.js font-defaults Change
index.html gzip 967 B 967 B
link.html gzip 975 B 975 B
withRouter.html gzip 960 B 960 B
Overall change 2.9 kB 2.9 kB

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
buildDuration 15.4s 15.5s ⚠️ +119ms
nodeModulesSize 85 MB 85 MB ⚠️ +636 B
Client Bundles (main, webpack, commons)
vercel/next.js canary azukaru/next.js font-defaults Change
677f882d2ed8..776c.js gzip 12.7 kB 12.7 kB
framework.HASH.js gzip 39 kB 39 kB
main-e1cf8de..941b.js gzip 6.53 kB 6.53 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 58.9 kB 58.9 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary azukaru/next.js font-defaults Change
677f882d2ed8..dule.js gzip 8.26 kB 8.26 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-30e5038..dule.js gzip 5.64 kB 5.64 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 53.6 kB 53.6 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary azukaru/next.js font-defaults Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary azukaru/next.js font-defaults Change
_app-3b0cf13..85f8.js gzip 1.28 kB 1.28 kB
_error-6f635..c393.js gzip 3.44 kB 3.44 kB
hooks-d4ffc3..9e0f.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-b618194..5477.js gzip 1.61 kB 1.61 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 8.01 kB 8.01 kB
Client Pages Modern
vercel/next.js canary azukaru/next.js font-defaults Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-f2fcc..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-9741e7f..dule.js gzip 1.55 kB 1.55 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.64 kB 5.64 kB
Client Build Manifests
vercel/next.js canary azukaru/next.js font-defaults Change
_buildManifest.js gzip 321 B 321 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 650 B 650 B
Serverless bundles Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_error.js 918 kB 918 kB ⚠️ +263 B
404.html 4.61 kB 4.61 kB
hooks.html 3.86 kB 3.86 kB
index.js 918 kB 918 kB ⚠️ +263 B
link.js 977 kB 977 kB ⚠️ +263 B
routerDirect.js 969 kB 969 kB ⚠️ +263 B
withRouter.js 969 kB 969 kB ⚠️ +263 B
Overall change 4.76 MB 4.76 MB ⚠️ +1.31 kB
Commit: c2e790f

@ijjk
Copy link
Member

ijjk commented Nov 18, 2020

Stats from current PR

Default Server Mode (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
buildDuration 13.2s 13.2s -11ms
nodeModulesSize 85 MB 85 MB ⚠️ +636 B
Page Load Tests Overall decrease ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
/ failed reqs 0 0
/ total time (seconds) 2.472 2.448 -0.02
/ avg req/sec 1011.5 1021.12 +9.62
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.288 1.3 ⚠️ +0.01
/error-in-render avg req/sec 1940.34 1923.26 ⚠️ -17.08
Client Bundles (main, webpack, commons)
vercel/next.js canary azukaru/next.js font-defaults Change
677f882d2ed8..776c.js gzip 12.7 kB 12.7 kB
framework.HASH.js gzip 39 kB 39 kB
main-e1cf8de..941b.js gzip 6.53 kB 6.53 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 58.9 kB 58.9 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary azukaru/next.js font-defaults Change
677f882d2ed8..dule.js gzip 8.26 kB 8.26 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-30e5038..dule.js gzip 5.64 kB 5.64 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 53.6 kB 53.6 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary azukaru/next.js font-defaults Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary azukaru/next.js font-defaults Change
_app-3b0cf13..85f8.js gzip 1.28 kB 1.28 kB
_error-6f635..c393.js gzip 3.44 kB 3.44 kB
hooks-d4ffc3..9e0f.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-b618194..5477.js gzip 1.61 kB 1.61 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 8.01 kB 8.01 kB
Client Pages Modern
vercel/next.js canary azukaru/next.js font-defaults Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-f2fcc..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-9741e7f..dule.js gzip 1.55 kB 1.55 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.64 kB 5.64 kB
Client Build Manifests
vercel/next.js canary azukaru/next.js font-defaults Change
_buildManifest.js gzip 321 B 321 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 650 B 650 B
Rendered Page Sizes
vercel/next.js canary azukaru/next.js font-defaults Change
index.html gzip 967 B 967 B
link.html gzip 975 B 975 B
withRouter.html gzip 960 B 960 B
Overall change 2.9 kB 2.9 kB

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
buildDuration 15.4s 15s -455ms
nodeModulesSize 85 MB 85 MB ⚠️ +636 B
Client Bundles (main, webpack, commons)
vercel/next.js canary azukaru/next.js font-defaults Change
677f882d2ed8..776c.js gzip 12.7 kB 12.7 kB
framework.HASH.js gzip 39 kB 39 kB
main-e1cf8de..941b.js gzip 6.53 kB 6.53 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 58.9 kB 58.9 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary azukaru/next.js font-defaults Change
677f882d2ed8..dule.js gzip 8.26 kB 8.26 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-30e5038..dule.js gzip 5.64 kB 5.64 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 53.6 kB 53.6 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary azukaru/next.js font-defaults Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary azukaru/next.js font-defaults Change
_app-3b0cf13..85f8.js gzip 1.28 kB 1.28 kB
_error-6f635..c393.js gzip 3.44 kB 3.44 kB
hooks-d4ffc3..9e0f.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-b618194..5477.js gzip 1.61 kB 1.61 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 8.01 kB 8.01 kB
Client Pages Modern
vercel/next.js canary azukaru/next.js font-defaults Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-f2fcc..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-9741e7f..dule.js gzip 1.55 kB 1.55 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.64 kB 5.64 kB
Client Build Manifests
vercel/next.js canary azukaru/next.js font-defaults Change
_buildManifest.js gzip 321 B 321 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 650 B 650 B
Serverless bundles Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_error.js 918 kB 918 kB ⚠️ +263 B
404.html 4.61 kB 4.61 kB
hooks.html 3.86 kB 3.86 kB
index.js 918 kB 918 kB ⚠️ +263 B
link.js 977 kB 977 kB ⚠️ +263 B
routerDirect.js 969 kB 969 kB ⚠️ +263 B
withRouter.js 969 kB 969 kB ⚠️ +263 B
Overall change 4.76 MB 4.76 MB ⚠️ +1.31 kB
Commit: b3c3b72

@ijjk
Copy link
Member

ijjk commented Nov 18, 2020

Stats from current PR

Default Server Mode (Decrease detected ✓)
General Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
buildDuration 14.6s 14.4s -242ms
nodeModulesSize 85 MB 85 MB ⚠️ +518 B
Page Load Tests Overall decrease ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
/ failed reqs 0 0
/ total time (seconds) 2.575 2.746 ⚠️ +0.17
/ avg req/sec 971.02 910.48 ⚠️ -60.54
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.466 1.645 ⚠️ +0.18
/error-in-render avg req/sec 1704.86 1519.97 ⚠️ -184.89
Client Bundles (main, webpack, commons)
vercel/next.js canary azukaru/next.js font-defaults Change
677f882d2ed8..776c.js gzip 12.7 kB 12.7 kB
framework.HASH.js gzip 39 kB 39 kB
main-e1cf8de..941b.js gzip 6.53 kB 6.53 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 58.9 kB 58.9 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary azukaru/next.js font-defaults Change
677f882d2ed8..dule.js gzip 8.26 kB 8.26 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-30e5038..dule.js gzip 5.64 kB 5.64 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 53.6 kB 53.6 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary azukaru/next.js font-defaults Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary azukaru/next.js font-defaults Change
_app-3b0cf13..85f8.js gzip 1.28 kB 1.28 kB
_error-6f635..c393.js gzip 3.44 kB 3.44 kB
hooks-d4ffc3..9e0f.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-b618194..5477.js gzip 1.61 kB 1.61 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 8.01 kB 8.01 kB
Client Pages Modern
vercel/next.js canary azukaru/next.js font-defaults Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-f2fcc..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-9741e7f..dule.js gzip 1.55 kB 1.55 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.64 kB 5.64 kB
Client Build Manifests
vercel/next.js canary azukaru/next.js font-defaults Change
_buildManifest.js gzip 321 B 321 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 650 B 650 B
Rendered Page Sizes
vercel/next.js canary azukaru/next.js font-defaults Change
index.html gzip 967 B 967 B
link.html gzip 975 B 975 B
withRouter.html gzip 960 B 960 B
Overall change 2.9 kB 2.9 kB

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
buildDuration 15.7s 17.2s ⚠️ +1.5s
nodeModulesSize 85 MB 85 MB ⚠️ +518 B
Client Bundles (main, webpack, commons)
vercel/next.js canary azukaru/next.js font-defaults Change
677f882d2ed8..776c.js gzip 12.7 kB 12.7 kB
framework.HASH.js gzip 39 kB 39 kB
main-e1cf8de..941b.js gzip 6.53 kB 6.53 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 58.9 kB 58.9 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary azukaru/next.js font-defaults Change
677f882d2ed8..dule.js gzip 8.26 kB 8.26 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-30e5038..dule.js gzip 5.64 kB 5.64 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 53.6 kB 53.6 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary azukaru/next.js font-defaults Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary azukaru/next.js font-defaults Change
_app-3b0cf13..85f8.js gzip 1.28 kB 1.28 kB
_error-6f635..c393.js gzip 3.44 kB 3.44 kB
hooks-d4ffc3..9e0f.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-b618194..5477.js gzip 1.61 kB 1.61 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 8.01 kB 8.01 kB
Client Pages Modern
vercel/next.js canary azukaru/next.js font-defaults Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-f2fcc..dule.js gzip 2.29 kB 2.29 kB
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-9741e7f..dule.js gzip 1.55 kB 1.55 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.64 kB 5.64 kB
Client Build Manifests
vercel/next.js canary azukaru/next.js font-defaults Change
_buildManifest.js gzip 321 B 321 B
_buildManife..dule.js gzip 329 B 329 B
Overall change 650 B 650 B
Serverless bundles Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_error.js 918 kB 918 kB ⚠️ +393 B
404.html 4.61 kB 4.61 kB
hooks.html 3.86 kB 3.86 kB
index.js 918 kB 918 kB ⚠️ +393 B
link.js 977 kB 977 kB ⚠️ +393 B
routerDirect.js 969 kB 970 kB ⚠️ +393 B
withRouter.js 969 kB 970 kB ⚠️ +393 B
Overall change 4.76 MB 4.76 MB ⚠️ +1.97 kB
Commit: e8218fa

@lachlanjc
Copy link
Contributor

It might still be good to have an option to turn it off though, if you’re using an edge case not supported or there’s an issue with the way Next is handling it way in the future. Not critical though.

@prateekbh
Copy link
Contributor Author

@lachlanjc I thought so too, but wouldn't that be true for every baked in optimization then?

@lachlanjc
Copy link
Contributor

Sure, that’s totally valid. This just strikes me as something that could have irritating compatibility issues if Next.js trying to be smart broke your fonts with the optimization.

@ijjk
Copy link
Member

ijjk commented Nov 18, 2020

Failing test suites

Commit: d290e48

test/integration/dist-dir/test/index.test.js

  • distDir > With basic usage > should not build the app within the default .next directory
Expand output

● distDir › With basic usage › should not build the app within the default .next directory

expect(received).toBeFalsy()

Received: true

  40 |       expect(
  41 |         await fs.exists(join(__dirname, `/../.next/${BUILD_ID_FILE}`))
> 42 |       ).toBeFalsy()
     |         ^
  43 |     })
  44 |   })
  45 | 

  at Object.<anonymous> (integration/dist-dir/test/index.test.js:42:9)

test/integration/build-output/test/index.test.js

  • Build Output > Basic Application Output > should not deviate from snapshot
Expand output

● Build Output › Basic Application Output › should not deviate from snapshot

expect(received).toBeLessThanOrEqual(expected)

Expected: <= 0
Received:    0.10000000000000009

   99 |       expect(indexFirstLoad.endsWith('kB')).toBe(true)
  100 | 
> 101 |       expect(parseFloat(err404Size) - 3.6).toBeLessThanOrEqual(0)
      |                                            ^
  102 |       expect(err404Size.endsWith('kB')).toBe(true)
  103 | 
  104 |       expect(parseFloat(err404FirstLoad) - 65).toBeLessThanOrEqual(0)

  at Object.<anonymous> (integration/build-output/test/index.test.js:101:44)

@ijjk
Copy link
Member

ijjk commented Nov 18, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
buildDuration 11.5s 10.9s -602ms
nodeModulesSize 85 MB 85 MB ⚠️ +94 B
Page Load Tests Overall decrease ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
/ failed reqs 0 0
/ total time (seconds) 2.041 2.353 ⚠️ +0.31
/ avg req/sec 1224.72 1062.28 ⚠️ -162.44
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.109 1.13 ⚠️ +0.02
/error-in-render avg req/sec 2254.1 2211.67 ⚠️ -42.43
Client Bundles (main, webpack, commons)
vercel/next.js canary azukaru/next.js font-defaults Change
677f882d2ed8..776c.js gzip 12.7 kB 12.7 kB
framework.HASH.js gzip 39 kB 39 kB
main-e1cf8de..941b.js gzip 6.53 kB 6.53 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 58.9 kB 58.9 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary azukaru/next.js font-defaults Change
677f882d2ed8..dule.js gzip 8.26 kB 8.26 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-30e5038..dule.js gzip 5.64 kB 5.64 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 53.6 kB 53.6 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary azukaru/next.js font-defaults Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_app-3b0cf13..85f8.js gzip 1.28 kB 1.28 kB
_error-6f635..c393.js gzip 3.44 kB 3.69 kB ⚠️ +257 B
hooks-d4ffc3..9e0f.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-b618194..5477.js gzip 1.61 kB 1.61 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 8.01 kB 8.27 kB ⚠️ +257 B
Client Pages Modern Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-f2fcc..dule.js gzip 2.29 kB 2.57 kB ⚠️ +280 B
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-9741e7f..dule.js gzip 1.55 kB 1.55 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.64 kB 5.92 kB ⚠️ +280 B
Client Build Manifests Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_buildManifest.js gzip 321 B 321 B
_buildManife..dule.js gzip 329 B 330 B ⚠️ +1 B
Overall change 650 B 651 B ⚠️ +1 B
Rendered Page Sizes
vercel/next.js canary azukaru/next.js font-defaults Change
index.html gzip 967 B 967 B
link.html gzip 975 B 975 B
withRouter.html gzip 960 B 960 B
Overall change 2.9 kB 2.9 kB

Diffs

Diff for _buildManifest.js
@@ -2,7 +2,7 @@ self.__BUILD_MANIFEST = {
   __rewrites: [],
   "/": ["static\u002Fchunks\u002Fpages\u002Findex-283eed3c1520dcc26e8d.js"],
   "/_error": [
-    "static\u002Fchunks\u002Fpages\u002F_error-760f653e71e48010adf7.js"
+    "static\u002Fchunks\u002Fpages\u002F_error-fd7c6a0057c26cb4d091.js"
   ],
   "/hooks": [
     "static\u002Fchunks\u002Fpages\u002Fhooks-880757f1d73d6b241fc3.js"
Diff for _buildManifest.module.js
@@ -4,7 +4,7 @@ self.__BUILD_MANIFEST = {
     "static\u002Fchunks\u002Fpages\u002Findex-dc79232991b9d18c3260.module.js"
   ],
   "/_error": [
-    "static\u002Fchunks\u002Fpages\u002F_error-b59ce1d1aef722bdb502.module.js"
+    "static\u002Fchunks\u002Fpages\u002F_error-8fcba411f7b9a67bc97f.module.js"
   ],
   "/hooks": [
     "static\u002Fchunks\u002Fpages\u002Fhooks-56fa58a6f0993d7d36d7.module.js"
Diff for _error-760f6..48010adf7.js
@@ -535,8 +535,23 @@ Also adds support for deduplicated `key` properties
           .map(function(c, i) {
             var key = c.key || i;
 
-            if (false) {
-              var newProps;
+            if (true && !props.inAmpMode) {
+              if (
+                c.type === "link" &&
+                c.props["href"] && // TODO(prateekbh@): Replace this with const from `constants` when the tree shaking works.
+                ["https://fonts.googleapis.com/css"].some(function(url) {
+                  return c.props["href"].startsWith(url);
+                })
+              ) {
+                var newProps = _objectSpread({}, c.props || {});
+
+                newProps["data-href"] = newProps["href"];
+                newProps["href"] = undefined;
+                return /*#__PURE__*/ _react["default"].cloneElement(
+                  c,
+                  newProps
+                );
+              }
             }
 
             return /*#__PURE__*/ _react["default"].cloneElement(c, {
Diff for _error-b59ce..02.module.js
@@ -446,8 +446,20 @@ Also adds support for deduplicated `key` properties
           .map((c, i) => {
             var key = c.key || i;
 
-            if (false) {
-              var newProps;
+            if (true && !props.inAmpMode) {
+              if (
+                c.type === "link" &&
+                c.props["href"] && // TODO(prateekbh@): Replace this with const from `constants` when the tree shaking works.
+                ["https://fonts.googleapis.com/css"].some(url =>
+                  c.props["href"].startsWith(url)
+                )
+              ) {
+                var newProps = _objectSpread({}, c.props || {});
+
+                newProps["data-href"] = newProps["href"];
+                newProps["href"] = undefined;
+                return /*#__PURE__*/ _react.default.cloneElement(c, newProps);
+              }
             }
 
             return /*#__PURE__*/ _react.default.cloneElement(c, {

Serverless Mode (Increase detected ⚠️)
General Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
buildDuration 12.4s 13s ⚠️ +595ms
nodeModulesSize 85 MB 85 MB ⚠️ +94 B
Client Bundles (main, webpack, commons)
vercel/next.js canary azukaru/next.js font-defaults Change
677f882d2ed8..776c.js gzip 12.7 kB 12.7 kB
framework.HASH.js gzip 39 kB 39 kB
main-e1cf8de..941b.js gzip 6.53 kB 6.53 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 58.9 kB 58.9 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary azukaru/next.js font-defaults Change
677f882d2ed8..dule.js gzip 8.26 kB 8.26 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-30e5038..dule.js gzip 5.64 kB 5.64 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 53.6 kB 53.6 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary azukaru/next.js font-defaults Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_app-3b0cf13..85f8.js gzip 1.28 kB 1.28 kB
_error-6f635..c393.js gzip 3.44 kB N/A N/A
hooks-d4ffc3..9e0f.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-b618194..5477.js gzip 1.61 kB 1.61 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
_error-1f53d..753f.js gzip N/A 3.69 kB N/A
Overall change 8.01 kB 8.27 kB ⚠️ +257 B
Client Pages Modern Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-f2fcc..dule.js gzip 2.29 kB N/A N/A
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-9741e7f..dule.js gzip 1.55 kB 1.55 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
_error-c65f4..dule.js gzip N/A 2.57 kB N/A
Overall change 5.64 kB 5.92 kB ⚠️ +280 B
Client Build Manifests Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_buildManifest.js gzip 321 B 321 B
_buildManife..dule.js gzip 329 B 330 B ⚠️ +1 B
Overall change 650 B 651 B ⚠️ +1 B
Serverless bundles Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_error.js 918 kB 918 kB ⚠️ +768 B
404.html 4.61 kB 4.61 kB
hooks.html 3.86 kB 3.86 kB
index.js 918 kB 919 kB ⚠️ +768 B
link.js 977 kB 977 kB ⚠️ +768 B
routerDirect.js 969 kB 970 kB ⚠️ +768 B
withRouter.js 969 kB 970 kB ⚠️ +768 B
Overall change 4.76 MB 4.76 MB ⚠️ +3.84 kB
Commit: d290e48

@ijjk
Copy link
Member

ijjk commented Nov 18, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall decrease ✓
vercel/next.js canary azukaru/next.js font-defaults Change
buildDuration 13.8s 13.6s -147ms
nodeModulesSize 85 MB 85 MB -99 B
Page Load Tests Overall increase ✓
vercel/next.js canary azukaru/next.js font-defaults Change
/ failed reqs 0 0
/ total time (seconds) 2.492 2.756 ⚠️ +0.26
/ avg req/sec 1003.02 907.07 ⚠️ -95.95
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.37 1.279 -0.09
/error-in-render avg req/sec 1824.47 1954.5 +130.03
Client Bundles (main, webpack, commons)
vercel/next.js canary azukaru/next.js font-defaults Change
677f882d2ed8..776c.js gzip 12.7 kB 12.7 kB
framework.HASH.js gzip 39 kB 39 kB
main-e3026b2..6d6d.js gzip 6.53 kB 6.53 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 58.9 kB 58.9 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary azukaru/next.js font-defaults Change
677f882d2ed8..dule.js gzip 8.26 kB 8.26 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-1bf8747..dule.js gzip 5.64 kB 5.64 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 53.6 kB 53.6 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary azukaru/next.js font-defaults Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_app-3b0cf13..85f8.js gzip 1.28 kB 1.28 kB
_error-6f635..c393.js gzip 3.44 kB 3.69 kB ⚠️ +257 B
hooks-d4ffc3..9e0f.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-b618194..5477.js gzip 1.61 kB 1.61 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 8.01 kB 8.27 kB ⚠️ +257 B
Client Pages Modern Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-f2fcc..dule.js gzip 2.29 kB 2.57 kB ⚠️ +280 B
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-9741e7f..dule.js gzip 1.55 kB 1.55 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.64 kB 5.92 kB ⚠️ +280 B
Client Build Manifests Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_buildManifest.js gzip 321 B 321 B
_buildManife..dule.js gzip 329 B 330 B ⚠️ +1 B
Overall change 650 B 651 B ⚠️ +1 B
Rendered Page Sizes
vercel/next.js canary azukaru/next.js font-defaults Change
index.html gzip 968 B 968 B
link.html gzip 976 B 976 B
withRouter.html gzip 961 B 961 B
Overall change 2.9 kB 2.9 kB

Diffs

Diff for _buildManifest.js
@@ -2,7 +2,7 @@ self.__BUILD_MANIFEST = {
   __rewrites: [],
   "/": ["static\u002Fchunks\u002Fpages\u002Findex-283eed3c1520dcc26e8d.js"],
   "/_error": [
-    "static\u002Fchunks\u002Fpages\u002F_error-760f653e71e48010adf7.js"
+    "static\u002Fchunks\u002Fpages\u002F_error-fd7c6a0057c26cb4d091.js"
   ],
   "/hooks": [
     "static\u002Fchunks\u002Fpages\u002Fhooks-880757f1d73d6b241fc3.js"
Diff for _buildManifest.module.js
@@ -4,7 +4,7 @@ self.__BUILD_MANIFEST = {
     "static\u002Fchunks\u002Fpages\u002Findex-dc79232991b9d18c3260.module.js"
   ],
   "/_error": [
-    "static\u002Fchunks\u002Fpages\u002F_error-b59ce1d1aef722bdb502.module.js"
+    "static\u002Fchunks\u002Fpages\u002F_error-8fcba411f7b9a67bc97f.module.js"
   ],
   "/hooks": [
     "static\u002Fchunks\u002Fpages\u002Fhooks-56fa58a6f0993d7d36d7.module.js"
Diff for _error-760f6..48010adf7.js
@@ -535,8 +535,23 @@ Also adds support for deduplicated `key` properties
           .map(function(c, i) {
             var key = c.key || i;
 
-            if (false) {
-              var newProps;
+            if (true && !props.inAmpMode) {
+              if (
+                c.type === "link" &&
+                c.props["href"] && // TODO(prateekbh@): Replace this with const from `constants` when the tree shaking works.
+                ["https://fonts.googleapis.com/css"].some(function(url) {
+                  return c.props["href"].startsWith(url);
+                })
+              ) {
+                var newProps = _objectSpread({}, c.props || {});
+
+                newProps["data-href"] = newProps["href"];
+                newProps["href"] = undefined;
+                return /*#__PURE__*/ _react["default"].cloneElement(
+                  c,
+                  newProps
+                );
+              }
             }
 
             return /*#__PURE__*/ _react["default"].cloneElement(c, {
Diff for _error-b59ce..02.module.js
@@ -446,8 +446,20 @@ Also adds support for deduplicated `key` properties
           .map((c, i) => {
             var key = c.key || i;
 
-            if (false) {
-              var newProps;
+            if (true && !props.inAmpMode) {
+              if (
+                c.type === "link" &&
+                c.props["href"] && // TODO(prateekbh@): Replace this with const from `constants` when the tree shaking works.
+                ["https://fonts.googleapis.com/css"].some(url =>
+                  c.props["href"].startsWith(url)
+                )
+              ) {
+                var newProps = _objectSpread({}, c.props || {});
+
+                newProps["data-href"] = newProps["href"];
+                newProps["href"] = undefined;
+                return /*#__PURE__*/ _react.default.cloneElement(c, newProps);
+              }
             }
 
             return /*#__PURE__*/ _react.default.cloneElement(c, {

Serverless Mode (Increase detected ⚠️)
General Overall decrease ✓
vercel/next.js canary azukaru/next.js font-defaults Change
buildDuration 15.8s 15.3s -469ms
nodeModulesSize 85 MB 85 MB -99 B
Client Bundles (main, webpack, commons)
vercel/next.js canary azukaru/next.js font-defaults Change
677f882d2ed8..776c.js gzip 12.7 kB 12.7 kB
framework.HASH.js gzip 39 kB 39 kB
main-e3026b2..6d6d.js gzip 6.53 kB 6.53 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 58.9 kB 58.9 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary azukaru/next.js font-defaults Change
677f882d2ed8..dule.js gzip 8.26 kB 8.26 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-1bf8747..dule.js gzip 5.64 kB 5.64 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 53.6 kB 53.6 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary azukaru/next.js font-defaults Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_app-3b0cf13..85f8.js gzip 1.28 kB 1.28 kB
_error-6f635..c393.js gzip 3.44 kB N/A N/A
hooks-d4ffc3..9e0f.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-b618194..5477.js gzip 1.61 kB 1.61 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
_error-1f53d..753f.js gzip N/A 3.69 kB N/A
Overall change 8.01 kB 8.27 kB ⚠️ +257 B
Client Pages Modern Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-f2fcc..dule.js gzip 2.29 kB N/A N/A
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-9741e7f..dule.js gzip 1.55 kB 1.55 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
_error-c65f4..dule.js gzip N/A 2.57 kB N/A
Overall change 5.64 kB 5.92 kB ⚠️ +280 B
Client Build Manifests Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_buildManifest.js gzip 321 B 321 B
_buildManife..dule.js gzip 329 B 330 B ⚠️ +1 B
Overall change 650 B 651 B ⚠️ +1 B
Serverless bundles Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_error.js 918 kB 918 kB ⚠️ +729 B
404.html 4.61 kB 4.61 kB
hooks.html 3.86 kB 3.86 kB
index.js 918 kB 919 kB ⚠️ +729 B
link.js 977 kB 977 kB ⚠️ +729 B
routerDirect.js 969 kB 970 kB ⚠️ +729 B
withRouter.js 969 kB 970 kB ⚠️ +729 B
Overall change 4.76 MB 4.76 MB ⚠️ +3.65 kB
Commit: 22df7a9

@ijjk
Copy link
Member

ijjk commented Nov 18, 2020

Failing test suites

Commit: 22df7a9

test/integration/build-output/test/index.test.js

  • Build Output > Basic Application Output > should not deviate from snapshot
Expand output

● Build Output › Basic Application Output › should not deviate from snapshot

expect(received).toBeLessThanOrEqual(expected)

Expected: <= 0
Received:    0.10000000000000009

   99 |       expect(indexFirstLoad.endsWith('kB')).toBe(true)
  100 | 
> 101 |       expect(parseFloat(err404Size) - 3.6).toBeLessThanOrEqual(0)
      |                                            ^
  102 |       expect(err404Size.endsWith('kB')).toBe(true)
  103 | 
  104 |       expect(parseFloat(err404FirstLoad) - 65).toBeLessThanOrEqual(0)

  at Object.<anonymous> (integration/build-output/test/index.test.js:101:44)

@ijjk
Copy link
Member

ijjk commented Nov 18, 2020

Failing test suites

Commit: 7ba923e

test/integration/dist-dir/test/index.test.js

  • distDir > With basic usage > should not build the app within the default .next directory
Expand output

● distDir › With basic usage › should not build the app within the default .next directory

expect(received).toBeFalsy()

Received: true

  40 |       expect(
  41 |         await fs.exists(join(__dirname, `/../.next/${BUILD_ID_FILE}`))
> 42 |       ).toBeFalsy()
     |         ^
  43 |     })
  44 |   })
  45 | 

  at Object.<anonymous> (integration/dist-dir/test/index.test.js:42:9)

test/integration/build-output/test/index.test.js

  • Build Output > Basic Application Output > should not deviate from snapshot
Expand output

● Build Output › Basic Application Output › should not deviate from snapshot

expect(received).toBeLessThanOrEqual(expected)

Expected: <= 0
Received:    0.10000000000000009

   99 |       expect(indexFirstLoad.endsWith('kB')).toBe(true)
  100 | 
> 101 |       expect(parseFloat(err404Size) - 3.6).toBeLessThanOrEqual(0)
      |                                            ^
  102 |       expect(err404Size.endsWith('kB')).toBe(true)
  103 | 
  104 |       expect(parseFloat(err404FirstLoad) - 65).toBeLessThanOrEqual(0)

  at Object.<anonymous> (integration/build-output/test/index.test.js:101:44)

@ijjk
Copy link
Member

ijjk commented Nov 18, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall decrease ✓
vercel/next.js canary azukaru/next.js font-defaults Change
buildDuration 13.5s 14.3s ⚠️ +812ms
nodeModulesSize 85 MB 85 MB -99 B
Page Load Tests Overall decrease ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
/ failed reqs 0 0
/ total time (seconds) 2.441 2.748 ⚠️ +0.31
/ avg req/sec 1024.26 909.64 ⚠️ -114.62
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.364 1.38 ⚠️ +0.02
/error-in-render avg req/sec 1832.25 1812.07 ⚠️ -20.18
Client Bundles (main, webpack, commons)
vercel/next.js canary azukaru/next.js font-defaults Change
677f882d2ed8..776c.js gzip 12.7 kB 12.7 kB
framework.HASH.js gzip 39 kB 39 kB
main-e3026b2..6d6d.js gzip 6.53 kB 6.53 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 58.9 kB 58.9 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary azukaru/next.js font-defaults Change
677f882d2ed8..dule.js gzip 8.26 kB 8.26 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-1bf8747..dule.js gzip 5.64 kB 5.64 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 53.6 kB 53.6 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary azukaru/next.js font-defaults Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_app-3b0cf13..85f8.js gzip 1.28 kB 1.28 kB
_error-6f635..c393.js gzip 3.44 kB 3.69 kB ⚠️ +257 B
hooks-d4ffc3..9e0f.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-b618194..5477.js gzip 1.61 kB 1.61 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 8.01 kB 8.27 kB ⚠️ +257 B
Client Pages Modern Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-f2fcc..dule.js gzip 2.29 kB 2.57 kB ⚠️ +280 B
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-9741e7f..dule.js gzip 1.55 kB 1.55 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
Overall change 5.64 kB 5.92 kB ⚠️ +280 B
Client Build Manifests Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_buildManifest.js gzip 321 B 321 B
_buildManife..dule.js gzip 329 B 330 B ⚠️ +1 B
Overall change 650 B 651 B ⚠️ +1 B
Rendered Page Sizes
vercel/next.js canary azukaru/next.js font-defaults Change
index.html gzip 968 B 968 B
link.html gzip 976 B 976 B
withRouter.html gzip 961 B 961 B
Overall change 2.9 kB 2.9 kB

Diffs

Diff for _buildManifest.js
@@ -2,7 +2,7 @@ self.__BUILD_MANIFEST = {
   __rewrites: [],
   "/": ["static\u002Fchunks\u002Fpages\u002Findex-283eed3c1520dcc26e8d.js"],
   "/_error": [
-    "static\u002Fchunks\u002Fpages\u002F_error-760f653e71e48010adf7.js"
+    "static\u002Fchunks\u002Fpages\u002F_error-fd7c6a0057c26cb4d091.js"
   ],
   "/hooks": [
     "static\u002Fchunks\u002Fpages\u002Fhooks-880757f1d73d6b241fc3.js"
Diff for _buildManifest.module.js
@@ -4,7 +4,7 @@ self.__BUILD_MANIFEST = {
     "static\u002Fchunks\u002Fpages\u002Findex-dc79232991b9d18c3260.module.js"
   ],
   "/_error": [
-    "static\u002Fchunks\u002Fpages\u002F_error-b59ce1d1aef722bdb502.module.js"
+    "static\u002Fchunks\u002Fpages\u002F_error-8fcba411f7b9a67bc97f.module.js"
   ],
   "/hooks": [
     "static\u002Fchunks\u002Fpages\u002Fhooks-56fa58a6f0993d7d36d7.module.js"
Diff for _error-760f6..48010adf7.js
@@ -535,8 +535,23 @@ Also adds support for deduplicated `key` properties
           .map(function(c, i) {
             var key = c.key || i;
 
-            if (false) {
-              var newProps;
+            if (true && !props.inAmpMode) {
+              if (
+                c.type === "link" &&
+                c.props["href"] && // TODO(prateekbh@): Replace this with const from `constants` when the tree shaking works.
+                ["https://fonts.googleapis.com/css"].some(function(url) {
+                  return c.props["href"].startsWith(url);
+                })
+              ) {
+                var newProps = _objectSpread({}, c.props || {});
+
+                newProps["data-href"] = newProps["href"];
+                newProps["href"] = undefined;
+                return /*#__PURE__*/ _react["default"].cloneElement(
+                  c,
+                  newProps
+                );
+              }
             }
 
             return /*#__PURE__*/ _react["default"].cloneElement(c, {
Diff for _error-b59ce..02.module.js
@@ -446,8 +446,20 @@ Also adds support for deduplicated `key` properties
           .map((c, i) => {
             var key = c.key || i;
 
-            if (false) {
-              var newProps;
+            if (true && !props.inAmpMode) {
+              if (
+                c.type === "link" &&
+                c.props["href"] && // TODO(prateekbh@): Replace this with const from `constants` when the tree shaking works.
+                ["https://fonts.googleapis.com/css"].some(url =>
+                  c.props["href"].startsWith(url)
+                )
+              ) {
+                var newProps = _objectSpread({}, c.props || {});
+
+                newProps["data-href"] = newProps["href"];
+                newProps["href"] = undefined;
+                return /*#__PURE__*/ _react.default.cloneElement(c, newProps);
+              }
             }
 
             return /*#__PURE__*/ _react.default.cloneElement(c, {

Serverless Mode (Increase detected ⚠️)
General Overall decrease ✓
vercel/next.js canary azukaru/next.js font-defaults Change
buildDuration 15.7s 15.7s -1ms
nodeModulesSize 85 MB 85 MB -99 B
Client Bundles (main, webpack, commons)
vercel/next.js canary azukaru/next.js font-defaults Change
677f882d2ed8..776c.js gzip 12.7 kB 12.7 kB
framework.HASH.js gzip 39 kB 39 kB
main-e3026b2..6d6d.js gzip 6.53 kB 6.53 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 58.9 kB 58.9 kB
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary azukaru/next.js font-defaults Change
677f882d2ed8..dule.js gzip 8.26 kB 8.26 kB
framework.HA..dule.js gzip 39 kB 39 kB
main-1bf8747..dule.js gzip 5.64 kB 5.64 kB
webpack-07c5..dule.js gzip 751 B 751 B
Overall change 53.6 kB 53.6 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary azukaru/next.js font-defaults Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_app-3b0cf13..85f8.js gzip 1.28 kB 1.28 kB
_error-6f635..c393.js gzip 3.44 kB N/A N/A
hooks-d4ffc3..9e0f.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-b618194..5477.js gzip 1.61 kB 1.61 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
_error-1f53d..753f.js gzip N/A 3.69 kB N/A
Overall change 8.01 kB 8.27 kB ⚠️ +257 B
Client Pages Modern Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_app-75d3a82..dule.js gzip 625 B 625 B
_error-f2fcc..dule.js gzip 2.29 kB N/A N/A
hooks-cbf13f..dule.js gzip 387 B 387 B
index-b9a643..dule.js gzip 226 B 226 B
link-9741e7f..dule.js gzip 1.55 kB 1.55 kB
routerDirect..dule.js gzip 284 B 284 B
withRouter-f..dule.js gzip 282 B 282 B
_error-c65f4..dule.js gzip N/A 2.57 kB N/A
Overall change 5.64 kB 5.92 kB ⚠️ +280 B
Client Build Manifests Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_buildManifest.js gzip 321 B 321 B
_buildManife..dule.js gzip 329 B 330 B ⚠️ +1 B
Overall change 650 B 651 B ⚠️ +1 B
Serverless bundles Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_error.js 918 kB 918 kB ⚠️ +729 B
404.html 4.61 kB 4.61 kB
hooks.html 3.86 kB 3.86 kB
index.js 918 kB 919 kB ⚠️ +729 B
link.js 977 kB 977 kB ⚠️ +729 B
routerDirect.js 969 kB 970 kB ⚠️ +729 B
withRouter.js 969 kB 970 kB ⚠️ +729 B
Overall change 4.76 MB 4.76 MB ⚠️ +3.65 kB
Commit: 7ba923e

@vercel vercel bot temporarily deployed to Preview November 24, 2020 16:19 Inactive
@ijjk
Copy link
Member

ijjk commented Nov 24, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall decrease ✓
vercel/next.js canary azukaru/next.js font-defaults Change
buildDuration 10.5s 10.2s -348ms
nodeModulesSize 84.9 MB 84.9 MB -2.62 kB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
/ failed reqs 0 0
/ total time (seconds) 2.347 2.523 ⚠️ +0.18
/ avg req/sec 1065.19 990.8 ⚠️ -74.39
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.573 1.525 -0.05
/error-in-render avg req/sec 1589.44 1639 +49.56
Client Bundles (main, webpack, commons)
vercel/next.js canary azukaru/next.js font-defaults Change
677f882d2ed8..8b81.js gzip 12.8 kB 12.8 kB
framework.HASH.js gzip 39 kB 39 kB
main-fbd7082..8b7a.js gzip 6.54 kB 6.54 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 59 kB 59 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary azukaru/next.js font-defaults Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_app-3b0cf13..85f8.js gzip 1.28 kB 1.28 kB
_error-6f635..c393.js gzip 3.44 kB 3.69 kB ⚠️ +257 B
hooks-d4ffc3..9e0f.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-b618194..5477.js gzip 1.61 kB 1.61 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 8.01 kB 8.27 kB ⚠️ +257 B
Client Build Manifests
vercel/next.js canary azukaru/next.js font-defaults Change
_buildManifest.js gzip 321 B 321 B
Overall change 321 B 321 B
Rendered Page Sizes
vercel/next.js canary azukaru/next.js font-defaults Change
index.html gzip 614 B 614 B
link.html gzip 621 B 621 B
withRouter.html gzip 608 B 608 B
Overall change 1.84 kB 1.84 kB

Diffs

Diff for _buildManifest.js
@@ -2,7 +2,7 @@ self.__BUILD_MANIFEST = {
   __rewrites: [],
   "/": ["static\u002Fchunks\u002Fpages\u002Findex-283eed3c1520dcc26e8d.js"],
   "/_error": [
-    "static\u002Fchunks\u002Fpages\u002F_error-760f653e71e48010adf7.js"
+    "static\u002Fchunks\u002Fpages\u002F_error-fd7c6a0057c26cb4d091.js"
   ],
   "/hooks": [
     "static\u002Fchunks\u002Fpages\u002Fhooks-880757f1d73d6b241fc3.js"
Diff for _error-760f6..48010adf7.js
@@ -535,8 +535,23 @@ Also adds support for deduplicated `key` properties
           .map(function(c, i) {
             var key = c.key || i;
 
-            if (false) {
-              var newProps;
+            if (true && !props.inAmpMode) {
+              if (
+                c.type === "link" &&
+                c.props["href"] && // TODO(prateekbh@): Replace this with const from `constants` when the tree shaking works.
+                ["https://fonts.googleapis.com/css"].some(function(url) {
+                  return c.props["href"].startsWith(url);
+                })
+              ) {
+                var newProps = _objectSpread({}, c.props || {});
+
+                newProps["data-href"] = newProps["href"];
+                newProps["href"] = undefined;
+                return /*#__PURE__*/ _react["default"].cloneElement(
+                  c,
+                  newProps
+                );
+              }
             }
 
             return /*#__PURE__*/ _react["default"].cloneElement(c, {

Serverless Mode (Increase detected ⚠️)
General Overall decrease ✓
vercel/next.js canary azukaru/next.js font-defaults Change
buildDuration 12.2s 12.3s ⚠️ +132ms
nodeModulesSize 84.9 MB 84.9 MB -2.62 kB
Client Bundles (main, webpack, commons)
vercel/next.js canary azukaru/next.js font-defaults Change
677f882d2ed8..8b81.js gzip 12.8 kB 12.8 kB
framework.HASH.js gzip 39 kB 39 kB
main-fbd7082..8b7a.js gzip 6.54 kB 6.54 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 59 kB 59 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary azukaru/next.js font-defaults Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_app-3b0cf13..85f8.js gzip 1.28 kB 1.28 kB
_error-6f635..c393.js gzip 3.44 kB N/A N/A
hooks-d4ffc3..9e0f.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-b618194..5477.js gzip 1.61 kB 1.61 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
_error-1f53d..753f.js gzip N/A 3.69 kB N/A
Overall change 8.01 kB 8.27 kB ⚠️ +257 B
Client Build Manifests
vercel/next.js canary azukaru/next.js font-defaults Change
_buildManifest.js gzip 321 B 321 B
Overall change 321 B 321 B
Serverless bundles Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_error.js 915 kB 916 kB ⚠️ +1.09 kB
404.html 2.67 kB 2.67 kB
hooks.html 1.92 kB 1.92 kB
index.js 915 kB 916 kB ⚠️ +1.09 kB
link.js 973 kB 975 kB ⚠️ +1.09 kB
routerDirect.js 966 kB 967 kB ⚠️ +1.09 kB
withRouter.js 966 kB 967 kB ⚠️ +1.09 kB
Overall change 4.74 MB 4.74 MB ⚠️ +5.44 kB
Commit: 67117f7

@ijjk
Copy link
Member

ijjk commented Nov 24, 2020

Failing test suites

Commit: 67117f7

test/integration/prerender/test/index.test.js

  • SSG Prerender > enumlated serverless mode > should reload page on failed data request, and retry
Expand output

● SSG Prerender › enumlated serverless mode › should reload page on failed data request, and retry

expect(received).toMatch(expected)

Expected pattern: /post.*?post-999/
Received string:  ""

  689 | 
  690 |       const text = await browser.elementByCss('#params').text()
> 691 |       expect(text).toMatch(/post.*?post-999/)
      |                    ^
  692 |     })
  693 |   }
  694 | 

  at Object.<anonymous> (integration/prerender/test/index.test.js:691:20)
      at runMicrotasks (<anonymous>)

@vercel vercel bot temporarily deployed to Preview November 24, 2020 20:04 Inactive
@ijjk
Copy link
Member

ijjk commented Nov 24, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall decrease ✓
vercel/next.js canary azukaru/next.js font-defaults Change
buildDuration 10.3s 10.4s ⚠️ +97ms
nodeModulesSize 84.9 MB 84.9 MB -2.62 kB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
/ failed reqs 0 0
/ total time (seconds) 2.255 2.501 ⚠️ +0.25
/ avg req/sec 1108.85 999.59 ⚠️ -109.26
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.359 1.339 -0.02
/error-in-render avg req/sec 1838.98 1867.67 +28.69
Client Bundles (main, webpack, commons)
vercel/next.js canary azukaru/next.js font-defaults Change
677f882d2ed8..8b81.js gzip 12.8 kB 12.8 kB
framework.HASH.js gzip 39 kB 39 kB
main-fbd7082..8b7a.js gzip 6.54 kB 6.54 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 59 kB 59 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary azukaru/next.js font-defaults Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_app-3b0cf13..85f8.js gzip 1.28 kB 1.28 kB
_error-6f635..c393.js gzip 3.44 kB 3.69 kB ⚠️ +257 B
hooks-d4ffc3..9e0f.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-b618194..5477.js gzip 1.61 kB 1.61 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 8.01 kB 8.27 kB ⚠️ +257 B
Client Build Manifests
vercel/next.js canary azukaru/next.js font-defaults Change
_buildManifest.js gzip 321 B 321 B
Overall change 321 B 321 B
Rendered Page Sizes
vercel/next.js canary azukaru/next.js font-defaults Change
index.html gzip 614 B 614 B
link.html gzip 621 B 621 B
withRouter.html gzip 608 B 608 B
Overall change 1.84 kB 1.84 kB

Diffs

Diff for _buildManifest.js
@@ -2,7 +2,7 @@ self.__BUILD_MANIFEST = {
   __rewrites: [],
   "/": ["static\u002Fchunks\u002Fpages\u002Findex-283eed3c1520dcc26e8d.js"],
   "/_error": [
-    "static\u002Fchunks\u002Fpages\u002F_error-760f653e71e48010adf7.js"
+    "static\u002Fchunks\u002Fpages\u002F_error-fd7c6a0057c26cb4d091.js"
   ],
   "/hooks": [
     "static\u002Fchunks\u002Fpages\u002Fhooks-880757f1d73d6b241fc3.js"
Diff for _error-760f6..48010adf7.js
@@ -535,8 +535,23 @@ Also adds support for deduplicated `key` properties
           .map(function(c, i) {
             var key = c.key || i;
 
-            if (false) {
-              var newProps;
+            if (true && !props.inAmpMode) {
+              if (
+                c.type === "link" &&
+                c.props["href"] && // TODO(prateekbh@): Replace this with const from `constants` when the tree shaking works.
+                ["https://fonts.googleapis.com/css"].some(function(url) {
+                  return c.props["href"].startsWith(url);
+                })
+              ) {
+                var newProps = _objectSpread({}, c.props || {});
+
+                newProps["data-href"] = newProps["href"];
+                newProps["href"] = undefined;
+                return /*#__PURE__*/ _react["default"].cloneElement(
+                  c,
+                  newProps
+                );
+              }
             }
 
             return /*#__PURE__*/ _react["default"].cloneElement(c, {

Serverless Mode (Increase detected ⚠️)
General Overall decrease ✓
vercel/next.js canary azukaru/next.js font-defaults Change
buildDuration 11.7s 12.2s ⚠️ +501ms
nodeModulesSize 84.9 MB 84.9 MB -2.62 kB
Client Bundles (main, webpack, commons)
vercel/next.js canary azukaru/next.js font-defaults Change
677f882d2ed8..8b81.js gzip 12.8 kB 12.8 kB
framework.HASH.js gzip 39 kB 39 kB
main-fbd7082..8b7a.js gzip 6.54 kB 6.54 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 59 kB 59 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary azukaru/next.js font-defaults Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_app-3b0cf13..85f8.js gzip 1.28 kB 1.28 kB
_error-6f635..c393.js gzip 3.44 kB N/A N/A
hooks-d4ffc3..9e0f.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-b618194..5477.js gzip 1.61 kB 1.61 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
_error-1f53d..753f.js gzip N/A 3.69 kB N/A
Overall change 8.01 kB 8.27 kB ⚠️ +257 B
Client Build Manifests
vercel/next.js canary azukaru/next.js font-defaults Change
_buildManifest.js gzip 321 B 321 B
Overall change 321 B 321 B
Serverless bundles Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_error.js 915 kB 916 kB ⚠️ +1.09 kB
404.html 2.67 kB 2.67 kB
hooks.html 1.92 kB 1.92 kB
index.js 915 kB 916 kB ⚠️ +1.09 kB
link.js 973 kB 975 kB ⚠️ +1.09 kB
routerDirect.js 966 kB 967 kB ⚠️ +1.09 kB
withRouter.js 966 kB 967 kB ⚠️ +1.09 kB
Overall change 4.74 MB 4.74 MB ⚠️ +5.44 kB
Commit: 13fcba7

…defaults

# Conflicts:
#	packages/next/build/webpack/loaders/next-serverless-loader.ts
@vercel vercel bot temporarily deployed to Preview December 1, 2020 16:19 Inactive
@ijjk
Copy link
Member

ijjk commented Dec 1, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall decrease ✓
vercel/next.js canary azukaru/next.js font-defaults Change
buildDuration 9.1s 8.9s -163ms
nodeModulesSize 85 MB 85 MB -2.53 kB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
/ failed reqs 0 0
/ total time (seconds) 2.094 2.384 ⚠️ +0.29
/ avg req/sec 1193.88 1048.47 ⚠️ -145.41
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.356 1.376 ⚠️ +0.02
/error-in-render avg req/sec 1843.68 1817.01 ⚠️ -26.67
Client Bundles (main, webpack, commons)
vercel/next.js canary azukaru/next.js font-defaults Change
677f882d2ed8..8b6e.js gzip 12.8 kB 12.8 kB
framework.HASH.js gzip 39 kB 39 kB
main-90b3d5a..55ad.js gzip 6.54 kB 6.54 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 59 kB 59 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary azukaru/next.js font-defaults Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_app-7231d4b..5856.js gzip 1.28 kB 1.28 kB
_error-fca3d..2eb1.js gzip 3.44 kB 3.69 kB ⚠️ +257 B
hooks-d4591d..e7c2.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-db223d9..dbd7.js gzip 1.61 kB 1.61 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 8.01 kB 8.27 kB ⚠️ +257 B
Client Build Manifests Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_buildManifest.js gzip 321 B 322 B ⚠️ +1 B
Overall change 321 B 322 B ⚠️ +1 B
Rendered Page Sizes
vercel/next.js canary azukaru/next.js font-defaults Change
index.html gzip 614 B 614 B
link.html gzip 621 B 621 B
withRouter.html gzip 608 B 608 B
Overall change 1.84 kB 1.84 kB

Diffs

Diff for _buildManifest.js
@@ -2,7 +2,7 @@ self.__BUILD_MANIFEST = {
   __rewrites: [],
   "/": ["static\u002Fchunks\u002Fpages\u002Findex-283eed3c1520dcc26e8d.js"],
   "/_error": [
-    "static\u002Fchunks\u002Fpages\u002F_error-9b57cae5694a39479222.js"
+    "static\u002Fchunks\u002Fpages\u002F_error-fbaccf4d6b3c31a2915e.js"
   ],
   "/hooks": [
     "static\u002Fchunks\u002Fpages\u002Fhooks-bdd2cad07648acf22380.js"
Diff for _error-9b57c..a39479222.js
@@ -535,8 +535,23 @@ Also adds support for deduplicated `key` properties
           .map(function(c, i) {
             var key = c.key || i;
 
-            if (false) {
-              var newProps;
+            if (true && !props.inAmpMode) {
+              if (
+                c.type === "link" &&
+                c.props["href"] && // TODO(prateekbh@): Replace this with const from `constants` when the tree shaking works.
+                ["https://fonts.googleapis.com/css"].some(function(url) {
+                  return c.props["href"].startsWith(url);
+                })
+              ) {
+                var newProps = _objectSpread({}, c.props || {});
+
+                newProps["data-href"] = newProps["href"];
+                newProps["href"] = undefined;
+                return /*#__PURE__*/ _react["default"].cloneElement(
+                  c,
+                  newProps
+                );
+              }
             }
 
             return /*#__PURE__*/ _react["default"].cloneElement(c, {

Serverless Mode (Increase detected ⚠️)
General Overall decrease ✓
vercel/next.js canary azukaru/next.js font-defaults Change
buildDuration 10.7s 10.8s ⚠️ +92ms
nodeModulesSize 85 MB 85 MB -2.53 kB
Client Bundles (main, webpack, commons)
vercel/next.js canary azukaru/next.js font-defaults Change
677f882d2ed8..8b6e.js gzip 12.8 kB 12.8 kB
framework.HASH.js gzip 39 kB 39 kB
main-90b3d5a..55ad.js gzip 6.54 kB 6.54 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 59 kB 59 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary azukaru/next.js font-defaults Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_app-7231d4b..5856.js gzip 1.28 kB 1.28 kB
_error-fca3d..2eb1.js gzip 3.44 kB N/A N/A
hooks-d4591d..e7c2.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-db223d9..dbd7.js gzip 1.61 kB 1.61 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
_error-01375..90b6.js gzip N/A 3.69 kB N/A
Overall change 8.01 kB 8.27 kB ⚠️ +257 B
Client Build Manifests Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_buildManifest.js gzip 321 B 322 B ⚠️ +1 B
Overall change 321 B 322 B ⚠️ +1 B
Serverless bundles Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_error.js 996 kB 997 kB ⚠️ +1.07 kB
404.html 2.67 kB 2.67 kB
hooks.html 1.92 kB 1.92 kB
index.js 996 kB 997 kB ⚠️ +1.07 kB
link.js 1.05 MB 1.05 MB ⚠️ +1.07 kB
routerDirect.js 1.04 MB 1.04 MB ⚠️ +1.07 kB
withRouter.js 1.04 MB 1.04 MB ⚠️ +1.07 kB
Overall change 5.13 MB 5.14 MB ⚠️ +5.33 kB
Commit: 578f196

@ijjk
Copy link
Member

ijjk commented Dec 1, 2020

Failing test suites

Commit: 578f196

test/integration/font-optimization/test/index.test.js

  • Font optimization for emulated serverless apps > should inline the google fonts for SSR pages
Expand output

● Font optimization for emulated serverless apps › should inline the google fonts for SSR pages

expect(received).toMatch(expected)

Expected pattern: /<style data-href="https:\/\/fonts\.googleapis\.com\/css2\?family=Roboto:wght@700">.*<\/style>/
Received string:  "<!DOCTYPE html><html><head><link rel=\"stylesheet\" data-href=\"https://fonts.googleapis.com/css?family=Voces\"/><meta name=\"viewport\" content=\"width=device-width\"/><meta charSet=\"utf-8\"/><title>Create Next App</title><link rel=\"icon\" href=\"/favicon.ico\"/><link rel=\"stylesheet\" data-href=\"https://fonts.googleapis.com/css2?family=Roboto:wght@700\"/><meta name=\"next-head-count\" content=\"5\"/><noscript data-n-css=\"\"></noscript><link rel=\"preload\" href=\"/_next/static/chunks/main-3d5480d9da2db9dc5ff2.js\" as=\"script\"/><link rel=\"preload\" href=\"/_next/static/chunks/webpack-e067438c4cf4ef2ef178.js\" as=\"script\"/><link rel=\"preload\" href=\"/_next/static/chunks/framework.d462f293190b01a8404a.js\" as=\"script\"/><link rel=\"preload\" href=\"/_next/static/chunks/279ac2b5366948f8a3fe6b33a5b1c5337242d383.729461eb0f58ff044014.js\" as=\"script\"/><link rel=\"preload\" href=\"/_next/static/chunks/f6078781a05fe1bcb0902d23dbbb2662c8d200b3.ee3993d748e5b7a685bc.js\" as=\"script\"/><link rel=\"preload\" href=\"/_next/static/chunks/pages/_app-4167a7455d9570b02356.js\" as=\"script\"/><link rel=\"preload\" href=\"/_next/static/chunks/pages/stars-60a9b9bdded0116e85b6.js\" as=\"script\"/><link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Voces\"/><link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css2?family=Roboto:wght@700\"/></head><body><div id=\"__next\"><div class=\"container\"><main><div>Next stars: <!-- -->327.07997408660907</div></main></div></div><script id=\"__NEXT_DATA__\" type=\"application/json\">{\"props\":{\"pageProps\":{\"stars\":327.07997408660907}},\"page\":\"/stars\",\"query\":{},\"buildId\":\"JhAIP-Mha-YR0qYo72zWa\",\"runtimeConfig\":{},\"nextExport\":false,\"isFallback\":false,\"gip\":true}</script><script nomodule=\"\" src=\"/_next/static/chunks/polyfills-e60bf636a1339bc95b80.js\"></script><script src=\"/_next/static/chunks/main-3d5480d9da2db9dc5ff2.js\" async=\"\"></script><script src=\"/_next/static/chunks/webpack-e067438c4cf4ef2ef178.js\" async=\"\"></script><script src=\"/_next/static/chunks/framework.d462f293190b01a8404a.js\" async=\"\"></script><script src=\"/_next/static/chunks/279ac2b5366948f8a3fe6b33a5b1c5337242d383.729461eb0f58ff044014.js\" async=\"\"></script><script src=\"/_next/static/chunks/f6078781a05fe1bcb0902d23dbbb2662c8d200b3.ee3993d748e5b7a685bc.js\" async=\"\"></script><script src=\"/_next/static/chunks/pages/_app-4167a7455d9570b02356.js\" async=\"\"></script><script src=\"/_next/static/chunks/pages/stars-60a9b9bdded0116e85b6.js\" async=\"\"></script><script src=\"/_next/static/JhAIP-Mha-YR0qYo72zWa/_buildManifest.js\" async=\"\"></script><script src=\"/_next/static/JhAIP-Mha-YR0qYo72zWa/_ssgManifest.js\" async=\"\"></script></body></html>"

  70 |       '<link rel="stylesheet" data-href="https://fonts.googleapis.com/css2?family=Roboto:wght@700"/>'
  71 |     )
> 72 |     expect(html).toMatch(
     |                  ^
  73 |       /<style data-href="https:\/\/fonts\.googleapis\.com\/css2\?family=Roboto:wght@700">.*<\/style>/
  74 |     )
  75 |   })

  at Object.<anonymous> (integration/font-optimization/test/index.test.js:72:18)

@vercel vercel bot temporarily deployed to Preview December 2, 2020 17:22 Inactive
@vercel vercel bot temporarily deployed to Preview December 2, 2020 17:48 Inactive
@ijjk
Copy link
Member

ijjk commented Dec 2, 2020

Failing test suites

Commit: a06a04f

test/integration/css-client-nav/test/index.test.js

  • CSS Module client-side navigation in Production > should be able to client-side navigate from blue to red
Expand output

● CSS Module client-side navigation in Production › should be able to client-side navigate from blue to red

expect(received).toBe(expected) // Object.is equality

Expected: 1
Received: 2

  72 |     // Ensure only `/blue` page's CSS is preloaded
  73 |     const serverCssPreloads = $('link[rel="preload"][as="style"]')
> 74 |     expect(serverCssPreloads.length).toBe(1)
     |                                      ^
  75 | 
  76 |     const serverCssPrefetches = $('link[rel="prefetch"][as="style"]')
  77 |     expect(serverCssPrefetches.length).toBe(0)

  at Object.<anonymous> (integration/css-client-nav/test/index.test.js:74:38)

@ijjk
Copy link
Member

ijjk commented Dec 2, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall decrease ✓
vercel/next.js canary azukaru/next.js font-defaults Change
buildDuration 11.6s 11.6s -20ms
nodeModulesSize 82.3 MB 82.3 MB -2.85 kB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
/ failed reqs 0 0
/ total time (seconds) 2.258 2.786 ⚠️ +0.53
/ avg req/sec 1107.17 897.19 ⚠️ -209.98
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.551 1.663 ⚠️ +0.11
/error-in-render avg req/sec 1612.17 1502.87 ⚠️ -109.3
Client Bundles (main, webpack, commons)
vercel/next.js canary azukaru/next.js font-defaults Change
677f882d2ed8..8b6e.js gzip 12.8 kB 12.8 kB
framework.HASH.js gzip 39 kB 39 kB
main-3c9ff84..1d7c.js gzip 6.56 kB 6.56 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 59 kB 59 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary azukaru/next.js font-defaults Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_app-7231d4b..5856.js gzip 1.28 kB 1.28 kB
_error-fca3d..2eb1.js gzip 3.44 kB 3.69 kB ⚠️ +257 B
hooks-d4591d..e7c2.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-db223d9..dbd7.js gzip 1.61 kB 1.61 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 8.01 kB 8.27 kB ⚠️ +257 B
Client Build Manifests Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_buildManifest.js gzip 321 B 322 B ⚠️ +1 B
Overall change 321 B 322 B ⚠️ +1 B
Rendered Page Sizes
vercel/next.js canary azukaru/next.js font-defaults Change
index.html gzip 614 B 614 B
link.html gzip 620 B 620 B
withRouter.html gzip 608 B 608 B
Overall change 1.84 kB 1.84 kB

Diffs

Diff for _buildManifest.js
@@ -2,7 +2,7 @@ self.__BUILD_MANIFEST = {
   __rewrites: [],
   "/": ["static\u002Fchunks\u002Fpages\u002Findex-283eed3c1520dcc26e8d.js"],
   "/_error": [
-    "static\u002Fchunks\u002Fpages\u002F_error-9b57cae5694a39479222.js"
+    "static\u002Fchunks\u002Fpages\u002F_error-fbaccf4d6b3c31a2915e.js"
   ],
   "/hooks": [
     "static\u002Fchunks\u002Fpages\u002Fhooks-bdd2cad07648acf22380.js"
Diff for _error-9b57c..a39479222.js
@@ -535,8 +535,23 @@ Also adds support for deduplicated `key` properties
           .map(function(c, i) {
             var key = c.key || i;
 
-            if (false) {
-              var newProps;
+            if (true && !props.inAmpMode) {
+              if (
+                c.type === "link" &&
+                c.props["href"] && // TODO(prateekbh@): Replace this with const from `constants` when the tree shaking works.
+                ["https://fonts.googleapis.com/css"].some(function(url) {
+                  return c.props["href"].startsWith(url);
+                })
+              ) {
+                var newProps = _objectSpread({}, c.props || {});
+
+                newProps["data-href"] = newProps["href"];
+                newProps["href"] = undefined;
+                return /*#__PURE__*/ _react["default"].cloneElement(
+                  c,
+                  newProps
+                );
+              }
             }
 
             return /*#__PURE__*/ _react["default"].cloneElement(c, {

Serverless Mode (Increase detected ⚠️)
General Overall decrease ✓
vercel/next.js canary azukaru/next.js font-defaults Change
buildDuration 13.6s 13.9s ⚠️ +254ms
nodeModulesSize 82.3 MB 82.3 MB -2.85 kB
Client Bundles (main, webpack, commons)
vercel/next.js canary azukaru/next.js font-defaults Change
677f882d2ed8..8b6e.js gzip 12.8 kB 12.8 kB
framework.HASH.js gzip 39 kB 39 kB
main-3c9ff84..1d7c.js gzip 6.56 kB 6.56 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 59 kB 59 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary azukaru/next.js font-defaults Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_app-7231d4b..5856.js gzip 1.28 kB 1.28 kB
_error-fca3d..2eb1.js gzip 3.44 kB N/A N/A
hooks-d4591d..e7c2.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-db223d9..dbd7.js gzip 1.61 kB 1.61 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
_error-01375..90b6.js gzip N/A 3.69 kB N/A
Overall change 8.01 kB 8.27 kB ⚠️ +257 B
Client Build Manifests Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_buildManifest.js gzip 321 B 322 B ⚠️ +1 B
Overall change 321 B 322 B ⚠️ +1 B
Serverless bundles Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_error.js 997 kB 999 kB ⚠️ +1.22 kB
404.html 2.67 kB 2.67 kB
hooks.html 1.92 kB 1.92 kB
index.js 998 kB 999 kB ⚠️ +1.22 kB
link.js 1.05 MB 1.05 MB ⚠️ +1.22 kB
routerDirect.js 1.04 MB 1.05 MB ⚠️ +1.22 kB
withRouter.js 1.04 MB 1.05 MB ⚠️ +1.22 kB
Overall change 5.14 MB 5.15 MB ⚠️ +6.12 kB
Commit: a06a04f

@ijjk
Copy link
Member

ijjk commented Dec 2, 2020

Failing test suites

Commit: a06a04f

test/integration/css-modules/test/index.test.js

  • 3rd Party CSS Module Support > should've injected the CSS on server render
  • Basic CSS Module Support > should've injected the CSS on server render
Expand output

● Basic CSS Module Support › should've injected the CSS on server render

expect(received).toBe(expected) // Object.is equality

Expected: 1
Received: 2

  64 | 
  65 |     const cssPreload = $('link[rel="preload"][as="style"]')
> 66 |     expect(cssPreload.length).toBe(1)
     |                               ^
  67 |     expect(cssPreload.attr('href')).toMatch(/^\/_next\/static\/css\/.*\.css$/)
  68 | 
  69 |     const cssSheet = $('link[rel="stylesheet"]')

  at Object.<anonymous> (integration/css-modules/test/index.test.js:66:31)

● 3rd Party CSS Module Support › should've injected the CSS on server render

expect(received).toBe(expected) // Object.is equality

Expected: 1
Received: 2

  120 | 
  121 |     const cssPreload = $('link[rel="preload"][as="style"]')
> 122 |     expect(cssPreload.length).toBe(1)
      |                               ^
  123 |     expect(cssPreload.attr('href')).toMatch(/^\/_next\/static\/css\/.*\.css$/)
  124 | 
  125 |     const cssSheet = $('link[rel="stylesheet"]')

  at Object.<anonymous> (integration/css-modules/test/index.test.js:122:31)

@ijjk
Copy link
Member

ijjk commented Dec 2, 2020

Failing test suites

Commit: a06a04f

test/integration/production/test/index.test.js

  • Production Usage > Dynamic import > default behavior > should render one dynamically imported component and load its css files
  • Production Usage > Dynamic import > default behavior > should render three dynamically imported components and load their css files
  • Production Usage > Dynamic import > default behavior > should bundle two css modules for one dynamically imported component into one css file
  • Production Usage > Dynamic import > default behavior > should bundle two css modules for nested components into one css file
  • Production Usage > Dynamic import > default behavior > should output two css files even in case of three css module files while one is shared across files
Expand output

● Production Usage › Dynamic import › default behavior › should render one dynamically imported component and load its css files

expect(received).toBe(expected) // Object.is equality

Expected: 1
Received: 2

  20 |         const $ = await get$('/dynamic/css')
  21 |         const cssFiles = $('link[rel=stylesheet]')
> 22 |         expect(cssFiles.length).toBe(1)
     |                                 ^
  23 |       })
  24 | 
  25 |       it('should render three dynamically imported components and load their css files', async () => {

  at Object.<anonymous> (integration/production/test/dynamic.js:22:33)
      at runMicrotasks (<anonymous>)

● Production Usage › Dynamic import › default behavior › should render three dynamically imported components and load their css files

expect(received).toBe(expected) // Object.is equality

Expected: 3
Received: 6

  26 |         const $ = await get$('/dynamic/many-dynamic-css')
  27 |         const cssFiles = $('link[rel=stylesheet]')
> 28 |         expect(cssFiles.length).toBe(3)
     |                                 ^
  29 |       })
  30 | 
  31 |       it('should bundle two css modules for one dynamically imported component into one css file', async () => {

  at Object.<anonymous> (integration/production/test/dynamic.js:28:33)
      at runMicrotasks (<anonymous>)

● Production Usage › Dynamic import › default behavior › should bundle two css modules for one dynamically imported component into one css file

expect(received).toBe(expected) // Object.is equality

Expected: 1
Received: 2

  32 |         const $ = await get$('/dynamic/many-css-modules')
  33 |         const cssFiles = $('link[rel=stylesheet]')
> 34 |         expect(cssFiles.length).toBe(1)
     |                                 ^
  35 |       })
  36 | 
  37 |       it('should bundle two css modules for nested components into one css file', async () => {

  at Object.<anonymous> (integration/production/test/dynamic.js:34:33)
      at runMicrotasks (<anonymous>)

● Production Usage › Dynamic import › default behavior › should bundle two css modules for nested components into one css file

expect(received).toBe(expected) // Object.is equality

Expected: 1
Received: 2

  38 |         const $ = await get$('/dynamic/nested-css')
  39 |         const cssFiles = $('link[rel=stylesheet]')
> 40 |         expect(cssFiles.length).toBe(1)
     |                                 ^
  41 |       })
  42 | 
  43 |       it('should not remove css styles for same css file between page transitions', async () => {

  at Object.<anonymous> (integration/production/test/dynamic.js:40:33)
      at runMicrotasks (<anonymous>)

● Production Usage › Dynamic import › default behavior › should output two css files even in case of three css module files while one is shared across files

expect(received).toBe(expected) // Object.is equality

Expected: 2
Received: 4

  67 |         const $ = await get$('/dynamic/shared-css-module')
  68 |         const cssFiles = $('link[rel=stylesheet]')
> 69 |         expect(cssFiles.length).toBe(2)
     |                                 ^
  70 |       })
  71 | 
  72 |       it('should render one dynamically imported component without any css files', async () => {

  at Object.<anonymous> (integration/production/test/dynamic.js:69:33)
      at runMicrotasks (<anonymous>)

@ijjk
Copy link
Member

ijjk commented Dec 2, 2020

Failing test suites

Commit: a06a04f

test/integration/scss-modules/test/index.test.js

  • 3rd Party CSS Module Support > should've injected the CSS on server render
  • Basic SCSS Module Support > should've injected the CSS on server render
Expand output

● Basic SCSS Module Support › should've injected the CSS on server render

expect(received).toBe(expected) // Object.is equality

Expected: 1
Received: 2

  63 | 
  64 |     const cssPreload = $('link[rel="preload"][as="style"]')
> 65 |     expect(cssPreload.length).toBe(1)
     |                               ^
  66 |     expect(cssPreload.attr('href')).toMatch(/^\/_next\/static\/css\/.*\.css$/)
  67 | 
  68 |     const cssSheet = $('link[rel="stylesheet"]')

  at Object.<anonymous> (integration/scss-modules/test/index.test.js:65:31)

● 3rd Party CSS Module Support › should've injected the CSS on server render

expect(received).toBe(expected) // Object.is equality

Expected: 1
Received: 2

  119 | 
  120 |     const cssPreload = $('link[rel="preload"][as="style"]')
> 121 |     expect(cssPreload.length).toBe(1)
      |                               ^
  122 |     expect(cssPreload.attr('href')).toMatch(/^\/_next\/static\/css\/.*\.css$/)
  123 | 
  124 |     const cssSheet = $('link[rel="stylesheet"]')

  at Object.<anonymous> (integration/scss-modules/test/index.test.js:121:31)

@vercel vercel bot temporarily deployed to Preview December 2, 2020 18:16 Inactive
@ijjk
Copy link
Member

ijjk commented Dec 2, 2020

Failing test suites

Commit: a06a04f

test/integration/css/test/index.test.js

  • CSS Support > Has CSS in computed styles in Production > should've preloaded the CSS file and injected it in
Expand output

● CSS Support › Has CSS in computed styles in Production › should've preloaded the CSS file and injected it in

expect(received).toBe(expected) // Object.is equality

Expected: 1
Received: 2

  633 | 
  634 |       const cssPreload = $('link[rel="preload"][as="style"]')
> 635 |       expect(cssPreload.length).toBe(1)
      |                                 ^
  636 |       expect(cssPreload.attr('href')).toMatch(/^\/_next\/static\/css\/.*\.css$/)
  637 | 
  638 |       const cssSheet = $('link[rel="stylesheet"]')

  at Object.<anonymous> (integration/css/test/index.test.js:635:33)

@ijjk
Copy link
Member

ijjk commented Dec 2, 2020

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General Overall decrease ✓
vercel/next.js canary azukaru/next.js font-defaults Change
buildDuration 8.2s 8.1s -146ms
nodeModulesSize 82.3 MB 82.3 MB -2.85 kB
Page Load Tests Overall decrease ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
/ failed reqs 0 0
/ total time (seconds) 1.68 2.034 ⚠️ +0.35
/ avg req/sec 1487.94 1228.93 ⚠️ -259.01
/error-in-render failed reqs 0 0
/error-in-render total time (seconds) 1.038 1.081 ⚠️ +0.04
/error-in-render avg req/sec 2409.1 2312.46 ⚠️ -96.64
Client Bundles (main, webpack, commons)
vercel/next.js canary azukaru/next.js font-defaults Change
677f882d2ed8..8b6e.js gzip 12.8 kB 12.8 kB
framework.HASH.js gzip 39 kB 39 kB
main-3c9ff84..1d7c.js gzip 6.56 kB 6.56 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 59 kB 59 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary azukaru/next.js font-defaults Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_app-7231d4b..5856.js gzip 1.28 kB 1.28 kB
_error-fca3d..2eb1.js gzip 3.44 kB 3.69 kB ⚠️ +257 B
hooks-d4591d..e7c2.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-db223d9..dbd7.js gzip 1.61 kB 1.61 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
Overall change 8.01 kB 8.27 kB ⚠️ +257 B
Client Build Manifests Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_buildManifest.js gzip 321 B 322 B ⚠️ +1 B
Overall change 321 B 322 B ⚠️ +1 B
Rendered Page Sizes
vercel/next.js canary azukaru/next.js font-defaults Change
index.html gzip 614 B 614 B
link.html gzip 620 B 620 B
withRouter.html gzip 608 B 608 B
Overall change 1.84 kB 1.84 kB

Diffs

Diff for _buildManifest.js
@@ -2,7 +2,7 @@ self.__BUILD_MANIFEST = {
   __rewrites: [],
   "/": ["static\u002Fchunks\u002Fpages\u002Findex-283eed3c1520dcc26e8d.js"],
   "/_error": [
-    "static\u002Fchunks\u002Fpages\u002F_error-9b57cae5694a39479222.js"
+    "static\u002Fchunks\u002Fpages\u002F_error-fbaccf4d6b3c31a2915e.js"
   ],
   "/hooks": [
     "static\u002Fchunks\u002Fpages\u002Fhooks-bdd2cad07648acf22380.js"
Diff for _error-9b57c..a39479222.js
@@ -535,8 +535,23 @@ Also adds support for deduplicated `key` properties
           .map(function(c, i) {
             var key = c.key || i;
 
-            if (false) {
-              var newProps;
+            if (true && !props.inAmpMode) {
+              if (
+                c.type === "link" &&
+                c.props["href"] && // TODO(prateekbh@): Replace this with const from `constants` when the tree shaking works.
+                ["https://fonts.googleapis.com/css"].some(function(url) {
+                  return c.props["href"].startsWith(url);
+                })
+              ) {
+                var newProps = _objectSpread({}, c.props || {});
+
+                newProps["data-href"] = newProps["href"];
+                newProps["href"] = undefined;
+                return /*#__PURE__*/ _react["default"].cloneElement(
+                  c,
+                  newProps
+                );
+              }
             }
 
             return /*#__PURE__*/ _react["default"].cloneElement(c, {

Serverless Mode (Increase detected ⚠️)
General Overall decrease ✓
vercel/next.js canary azukaru/next.js font-defaults Change
buildDuration 9.8s 10s ⚠️ +159ms
nodeModulesSize 82.3 MB 82.3 MB -2.85 kB
Client Bundles (main, webpack, commons)
vercel/next.js canary azukaru/next.js font-defaults Change
677f882d2ed8..8b6e.js gzip 12.8 kB 12.8 kB
framework.HASH.js gzip 39 kB 39 kB
main-3c9ff84..1d7c.js gzip 6.56 kB 6.56 kB
webpack-e067..f178.js gzip 751 B 751 B
Overall change 59 kB 59 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary azukaru/next.js font-defaults Change
polyfills-4b..e242.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_app-7231d4b..5856.js gzip 1.28 kB 1.28 kB
_error-fca3d..2eb1.js gzip 3.44 kB N/A N/A
hooks-d4591d..e7c2.js gzip 887 B 887 B
index-17468f..5d83.js gzip 227 B 227 B
link-db223d9..dbd7.js gzip 1.61 kB 1.61 kB
routerDirect..924c.js gzip 284 B 284 B
withRouter-7..c13d.js gzip 284 B 284 B
_error-01375..90b6.js gzip N/A 3.69 kB N/A
Overall change 8.01 kB 8.27 kB ⚠️ +257 B
Client Build Manifests Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_buildManifest.js gzip 321 B 322 B ⚠️ +1 B
Overall change 321 B 322 B ⚠️ +1 B
Serverless bundles Overall increase ⚠️
vercel/next.js canary azukaru/next.js font-defaults Change
_error.js 997 kB 999 kB ⚠️ +1.22 kB
404.html 2.67 kB 2.67 kB
hooks.html 1.92 kB 1.92 kB
index.js 998 kB 999 kB ⚠️ +1.22 kB
link.js 1.05 MB 1.05 MB ⚠️ +1.22 kB
routerDirect.js 1.04 MB 1.05 MB ⚠️ +1.22 kB
withRouter.js 1.04 MB 1.05 MB ⚠️ +1.22 kB
Overall change 5.14 MB 5.15 MB ⚠️ +6.12 kB
Commit: a1799f6

@ijjk
Copy link
Member

ijjk commented Dec 2, 2020

Failing test suites

Commit: a1799f6

test/integration/css-client-nav/test/index.test.js

  • CSS Module client-side navigation in Production > should be able to client-side navigate from blue to red
Expand output

● CSS Module client-side navigation in Production › should be able to client-side navigate from blue to red

expect(received).toBe(expected) // Object.is equality

Expected: 1
Received: 2

  72 |     // Ensure only `/blue` page's CSS is preloaded
  73 |     const serverCssPreloads = $('link[rel="preload"][as="style"]')
> 74 |     expect(serverCssPreloads.length).toBe(1)
     |                                      ^
  75 | 
  76 |     const serverCssPrefetches = $('link[rel="prefetch"][as="style"]')
  77 |     expect(serverCssPrefetches.length).toBe(0)

  at Object.<anonymous> (integration/css-client-nav/test/index.test.js:74:38)

@ijjk
Copy link
Member

ijjk commented Dec 2, 2020

Failing test suites

Commit: a1799f6

test/integration/production/test/index.test.js

  • Production Usage > Dynamic import > default behavior > should render one dynamically imported component and load its css files
  • Production Usage > Dynamic import > default behavior > should render three dynamically imported components and load their css files
  • Production Usage > Dynamic import > default behavior > should bundle two css modules for one dynamically imported component into one css file
  • Production Usage > Dynamic import > default behavior > should bundle two css modules for nested components into one css file
  • Production Usage > Dynamic import > default behavior > should output two css files even in case of three css module files while one is shared across files
Expand output

● Production Usage › Dynamic import › default behavior › should render one dynamically imported component and load its css files

expect(received).toBe(expected) // Object.is equality

Expected: 1
Received: 2

  20 |         const $ = await get$('/dynamic/css')
  21 |         const cssFiles = $('link[rel=stylesheet]')
> 22 |         expect(cssFiles.length).toBe(1)
     |                                 ^
  23 |       })
  24 | 
  25 |       it('should render three dynamically imported components and load their css files', async () => {

  at Object.<anonymous> (integration/production/test/dynamic.js:22:33)
      at runMicrotasks (<anonymous>)

● Production Usage › Dynamic import › default behavior › should render three dynamically imported components and load their css files

expect(received).toBe(expected) // Object.is equality

Expected: 3
Received: 6

  26 |         const $ = await get$('/dynamic/many-dynamic-css')
  27 |         const cssFiles = $('link[rel=stylesheet]')
> 28 |         expect(cssFiles.length).toBe(3)
     |                                 ^
  29 |       })
  30 | 
  31 |       it('should bundle two css modules for one dynamically imported component into one css file', async () => {

  at Object.<anonymous> (integration/production/test/dynamic.js:28:33)
      at runMicrotasks (<anonymous>)

● Production Usage › Dynamic import › default behavior › should bundle two css modules for one dynamically imported component into one css file

expect(received).toBe(expected) // Object.is equality

Expected: 1
Received: 2

  32 |         const $ = await get$('/dynamic/many-css-modules')
  33 |         const cssFiles = $('link[rel=stylesheet]')
> 34 |         expect(cssFiles.length).toBe(1)
     |                                 ^
  35 |       })
  36 | 
  37 |       it('should bundle two css modules for nested components into one css file', async () => {

  at Object.<anonymous> (integration/production/test/dynamic.js:34:33)
      at runMicrotasks (<anonymous>)

● Production Usage › Dynamic import › default behavior › should bundle two css modules for nested components into one css file

expect(received).toBe(expected) // Object.is equality

Expected: 1
Received: 2

  38 |         const $ = await get$('/dynamic/nested-css')
  39 |         const cssFiles = $('link[rel=stylesheet]')
> 40 |         expect(cssFiles.length).toBe(1)
     |                                 ^
  41 |       })
  42 | 
  43 |       it('should not remove css styles for same css file between page transitions', async () => {

  at Object.<anonymous> (integration/production/test/dynamic.js:40:33)
      at runMicrotasks (<anonymous>)

● Production Usage › Dynamic import › default behavior › should output two css files even in case of three css module files while one is shared across files

expect(received).toBe(expected) // Object.is equality

Expected: 2
Received: 4

  67 |         const $ = await get$('/dynamic/shared-css-module')
  68 |         const cssFiles = $('link[rel=stylesheet]')
> 69 |         expect(cssFiles.length).toBe(2)
     |                                 ^
  70 |       })
  71 | 
  72 |       it('should render one dynamically imported component without any css files', async () => {

  at Object.<anonymous> (integration/production/test/dynamic.js:69:33)
      at runMicrotasks (<anonymous>)

@ijjk
Copy link
Member

ijjk commented Dec 2, 2020

Failing test suites

Commit: a1799f6

test/integration/scss-modules/test/index.test.js

  • 3rd Party CSS Module Support > should've injected the CSS on server render
  • Basic SCSS Module Support > should've injected the CSS on server render
Expand output

● Basic SCSS Module Support › should've injected the CSS on server render

expect(received).toBe(expected) // Object.is equality

Expected: 1
Received: 2

  63 | 
  64 |     const cssPreload = $('link[rel="preload"][as="style"]')
> 65 |     expect(cssPreload.length).toBe(1)
     |                               ^
  66 |     expect(cssPreload.attr('href')).toMatch(/^\/_next\/static\/css\/.*\.css$/)
  67 | 
  68 |     const cssSheet = $('link[rel="stylesheet"]')

  at Object.<anonymous> (integration/scss-modules/test/index.test.js:65:31)

● 3rd Party CSS Module Support › should've injected the CSS on server render

expect(received).toBe(expected) // Object.is equality

Expected: 1
Received: 2

  119 | 
  120 |     const cssPreload = $('link[rel="preload"][as="style"]')
> 121 |     expect(cssPreload.length).toBe(1)
      |                               ^
  122 |     expect(cssPreload.attr('href')).toMatch(/^\/_next\/static\/css\/.*\.css$/)
  123 | 
  124 |     const cssSheet = $('link[rel="stylesheet"]')

  at Object.<anonymous> (integration/scss-modules/test/index.test.js:121:31)

@prateekbh prateekbh closed this Dec 2, 2020
@prateekbh
Copy link
Contributor Author

opened #19758

@vercel vercel locked as resolved and limited conversation to collaborators Jan 29, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Font Optimization produces empty font definitions
4 participants