Commit graph

9775 commits

Author SHA1 Message Date
Steven
83cd45215a
Add warning when image has unused sizes prop (#31064)
- Related to https://twitter.com/jaffathecake/status/1456579637987979265
- Closes #30640
2021-11-08 16:34:30 +00:00
jj@jjsweb.site
2a801809bb
v12.0.4-canary.0 2021-11-08 09:52:15 -06:00
Tim Neutkens
9db80fece5
Add webpack5 namespace to fix type errors (#31140) 2021-11-08 16:19:33 +01:00
Kitty Giraudel
3ceb9c5673
Give priority to document.title over h1 when announcing page change (#31147)
## Improvement

This pull-request should address https://github.com/vercel/next.js/issues/24021, improving the page change announcement for assistive technologies by giving priority to `document.title` over `h1`. Interestingly, it would also improve a potential performance bottleneck by skipping calls to `innerText` on the main `h1` raised in [this comment](https://github.com/vercel/next.js/pull/20428#issuecomment-962537038).
2021-11-08 14:58:21 +00:00
Shu Ding
feed67ee36
Enable code splitting for the web runtime build (#31090)
When using the web runtime with SSR streaming, this PR significantly improves the build speed for large applications when there're large modules shared by most pages.

With another optimization, `react-dom` will now be excluded in the web runtime build if it's imported in the application. It will only take effect in the client bundle.

## Bug

- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Errors have helpful link attached, see `contributing.md`

## Feature

- [ ] Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR.
- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Documentation added
- [ ] Telemetry added. In case of a feature if it's used or not.
- [ ] Errors have helpful link attached, see `contributing.md`

## Documentation / Examples

- [ ] Make sure the linting passes by running `yarn lint`
2021-11-08 12:41:49 +00:00
Tobias Koppers
9e03c8d4ed
improve windows support for benchmark (#31032) 2021-11-08 11:39:39 +01:00
Jiachi Liu
cfb8cc841e
Change .web extension of document page to part of path (#31116)
Fixes: #31104

This effecting users who are using expo with next (`@expo/next-adapter`) since react-native use `.web`, `.ios` and `.android` to identify platform. [Reference](https://docs.expo.dev/guides/using-electron/#%F0%9F%A7%B8-behavior)

Change `document.web.js` to `document-web.js` as fallback page in web runtime
2021-11-07 22:14:50 +00:00
Gerald Monaco
ad981783ab
Add render prop support to <Main> (#30156)
Adds support for render props to the `<Main>` component, when using the [functional custom `Document`](https://github.com/vercel/next.js/pull/28515) style. This allows you to write something like this:

```tsx
export default function Document() {
  const jsxStyleRegistry = createStyleRegistry()
  return (
    <Html>
      <Head />
      <body>
        <Main>
          {content => (
            <StyledJsxWrapper registry={jsxStyleRegistry}>
              {content}
            </StyledJsxWrapper>
          )}
        </Main>
        <NextScript />
      </body>
    </Html>
  )
}
```

In functional document components, this allows the `<App>` to be wrapped, similar to `enhanceApp` (which is only available via `getInitialProps`, which is not supported by functional document components). The primary use for this is for integrating with 3rd party CSS-in-JS libraries, allowing them to attach an `useFlush` handler to [support React 18](https://github.com/reactwg/react-18/discussions/110):

```tsx
import { unstable_useFlush as useFlush } from 'next/document'

export default function StyledJsxWrapper({ children, registry }) {
  useFlush(() => {
    /* ... */
  })
  return (
    <StyleRegistry registry={registry}>
      {children}
    </StyleRegistry>
  )
}
```

Support for `useFlush` will be added in a follow up PR.
2021-11-07 17:36:39 +00:00
Tim Neutkens
f8e66610b6
Change disabled SWC message to Log.info (#31091)
Based on feedback from @flybayer, this changes the `warn - ` to `info -` for the "Disabled SWC" message.



## Bug

- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Errors have helpful link attached, see `contributing.md`

## Feature

- [ ] Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR.
- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Documentation added
- [ ] Telemetry added. In case of a feature if it's used or not.
- [ ] Errors have helpful link attached, see `contributing.md`

## Documentation / Examples

- [ ] Make sure the linting passes by running `yarn lint`
2021-11-06 18:37:24 +00:00
Shu Ding
5e185fc5da
Upgrade React alpha and experimental dependencies to latest (#31039)
Ensuring that our tests are not broken with latest React changes.

## Bug

- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Errors have helpful link attached, see `contributing.md`

## Feature

- [ ] Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR.
- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Documentation added
- [ ] Telemetry added. In case of a feature if it's used or not.
- [ ] Errors have helpful link attached, see `contributing.md`

## Documentation / Examples

- [ ] Make sure the linting passes by running `yarn lint`
2021-11-06 12:08:03 +00:00
Jiachi Liu
e029ace5ed
Fix custom 404 page when concurrentFeatures is enabled (#31059)
x-ref: https://github.com/vercel/next.js/issues/30424#issuecomment-955615781

This fix the custom 404 is not rendering properly and can’t be built in web runtime when `concurrentFeatures` is enabled. We force 404 page to be rendered outside of middleware ssr. Then it could be the real fallback 404 page in next-server when any routes is not macthed. 
Will check 500 related after #31057 is landed.

## Bug

- [x] Related to #30989
- [x] Integration tests added
2021-11-06 11:27:40 +00:00
chemicalkosek
9e339fdd1f
Update remark and remark-html dependencies (#31051)
That example errors out on 
```
TypeError: (0 , remark__WEBPACK_IMPORTED_MODULE_0__.remark) is not a function
```
Updating those dependencies fixes the problem.



## Bug

- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Errors have helpful link attached, see `contributing.md`

## Feature

- [ ] Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR.
- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Documentation added
- [ ] Telemetry added. In case of a feature if it's used or not.
- [ ] Errors have helpful link attached, see `contributing.md`

## Documentation / Examples

- [ ] Make sure the linting passes by running `yarn lint`
2021-11-06 05:55:55 +00:00
Rishabh Poddar
155aaa3153
Optimise bundle size for with-supertokens example (#31040)
This PR optimises the bundle size sent to the frontend for nextJS apps by lazy loading the SuperTokens backend SDK only when it's needed.
2021-11-06 05:28:38 +00:00
Shu Ding
d2c1888a25
update serverless plugin to use webpack 5 apis (#31058)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-11-06 01:19:25 +01:00
JJ Kasper
fab345d952
Ensure decode error in minimal mode responds with 400 not 500 (#31037)
This ensures we handle decode failures in minimal mode as a 400 response (bad request) instead of a 500 (server error). 

## Bug

- [ ] Related issues linked using `fixes #number`
- [x] Integration tests added
- [ ] Errors have helpful link attached, see `contributing.md`
2021-11-05 23:39:52 +00:00
Shu Ding
b75b2f02c9
Improve error handling in the SSR middleware (#31057)
This PR improves error handling in the SSR middleware. Previously the response was sent out synchronously, and and errors were silently swallowed. There was no `.catch` for `renderToHTML`. This changes the middleware to be asynchronous, which waits until the initial Document to be rendered correctly and then starts the streaming. 

With this change we can also send correct status code when there're immediate errors before Fizz.

## Bug

- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Errors have helpful link attached, see `contributing.md`

## Feature

- [ ] Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR.
- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Documentation added
- [ ] Telemetry added. In case of a feature if it's used or not.
- [ ] Errors have helpful link attached, see `contributing.md`

## Documentation / Examples

- [ ] Make sure the linting passes by running `yarn lint`
2021-11-05 22:59:46 +00:00
Shu Ding
0307ba0d1d
Optimize the SSR middleware runtime size (#30906)
By conditionally importing `react-dom/server` under the web runtime and reusing `renderToReadableStream` instead of `renderToStaticMarkup`, we can get rid of the legacy browser React DOM server from the runtime. ~Furthermore we can make the build target `es6` for the SSR middleware, and make some code paths tree-shakable (done in another PR).~

Together this makes the runtime ~32kb smaller.

## Bug

- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Errors have helpful link attached, see `contributing.md`

## Feature

- [ ] Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR.
- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Documentation added
- [ ] Telemetry added. In case of a feature if it's used or not.
- [ ] Errors have helpful link attached, see `contributing.md`

## Documentation / Examples

- [ ] Make sure the linting passes by running `yarn lint`
2021-11-05 21:51:10 +00:00
Javi Velasco
6e081e175f
Update middleware eval checks (#30883)
Co-authored-by: Tobias Koppers <sokra@users.noreply.github.com>

With this PR we are updating the way we check the usage of `eval` and other dynamic code evaluation (like `new Function`) for middleware. Now instead of simply showing a warning it will behave differently depending on if we are building or in development.

- Development: we replace the dynamic code with a wrapper so that we print a warning only when the code is used. We don't fail in this scenario as it is possible that once the application is built the code that uses `eval` is left out.
- Build: we detect with tree shaking if the code that will be bundled into the middleware includes any dynamic code and in such scenario we make the build fail as don't want to allow it for the production environment.

Closes #30674

## Bug

- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Errors have helpful link attached, see `contributing.md`

## Feature

- [ ] Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR.
- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Documentation added
- [ ] Telemetry added. In case of a feature if it's used or not.
- [ ] Errors have helpful link attached, see `contributing.md`

## Documentation / Examples

- [ ] Make sure the linting passes by running `yarn lint`
2021-11-05 20:48:43 +00:00
Tim Neutkens
e2506411a1 v12.0.3 2021-11-05 19:04:04 +01:00
Tim Neutkens
4329b7f2b5 v12.0.3-canary.10 2021-11-05 16:05:32 +01:00
Tobias Koppers
177e15b6ba
pass Buffer directly to Rust (#30975) 2021-11-05 15:12:06 +01:00
Shu Ding
bc19c2a564
Fix code splitting and build target for the server-web build (#30972)
- Code splitting should be disabled for the server-web build. Done via `ServerlessPlugin`.
- ~Target can't be `web`, `webworker` is better.~ Using `web` and `es6` for now, still not ideal.
- https://github.com/acornjs/acorn/issues/970

## Bug

- [ ] Related issues linked using `fixes #number`
- [x] Integration tests added
- [ ] Errors have helpful link attached, see `contributing.md`

## Feature

- [ ] Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR.
- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Documentation added
- [ ] Telemetry added. In case of a feature if it's used or not.
- [ ] Errors have helpful link attached, see `contributing.md`

## Documentation / Examples

- [ ] Make sure the linting passes by running `yarn lint`
2021-11-05 03:27:02 +00:00
jj@jjsweb.site
4b6cea2e48
v12.0.3-canary.9 2021-11-04 20:45:02 -05:00
JJ Kasper
bf097f1d0f
Update resolving for node_modules trace pass (#30985)
* Update resolving for node_modules trace pass

* Update test
2021-11-04 20:09:37 -05:00
Zeki
5db9d09edd
Added closing tag to <Suspense> (#30983)
There was no closing tag for the first `<Suspense>` tag.
2021-11-04 15:57:00 -05:00
Tim Neutkens
ad6b9c2d4d
Fix version in trace (#30982)
Noticed the trace can't be imported because the tags are a nested as apparently the type was not restrictive of that.


## Bug

- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Errors have helpful link attached, see `contributing.md`

## Feature

- [ ] Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR.
- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Documentation added
- [ ] Telemetry added. In case of a feature if it's used or not.
- [ ] Errors have helpful link attached, see `contributing.md`

## Documentation / Examples

- [ ] Make sure the linting passes by running `yarn lint`
2021-11-04 20:56:30 +00:00
JJ Kasper
b408d73373
Fix flakey preload test (#30969) 2021-11-04 14:50:24 -05:00
Jiachi Liu
0c494af97c
Use absolute document and app paths for the middleware SSR loader (#30963)
* use absolute path

* use absolute path

* update test

* rename modern -> web

Co-authored-by: Shu Ding <g@shud.in>
2021-11-04 14:10:07 -05:00
Tim Neutkens
9da6cf2541 v12.0.3-canary.8 2021-11-04 17:22:44 +01:00
Tobias Koppers
5e99b7b51b
fix preset name for improved performance (#30954) 2021-11-04 14:17:24 +00:00
Donny/강동윤
e8e4210f9f
next-swc: Add .bundle() (#30935) 2021-11-04 13:23:25 +01:00
Tim Neutkens
5684edb36f v12.0.3-canary.7 2021-11-04 13:13:21 +01:00
Tobias Koppers
c7d0883fc9
upgrade webpack-sources (#30944)
fixes #30920
2021-11-04 11:33:02 +00:00
Tim Neutkens
0bead091be v12.0.3-canary.6 2021-11-04 11:30:52 +01:00
Genet Schneider
30dd3cc2a2
Account for assetPrefix when initializing HMR connection (#30632) 2021-11-04 10:34:37 +01:00
Maia Teegarden
ec19198227
Fix styles that should not be made dynamic (#30928) 2021-11-04 10:24:21 +01:00
JJ Kasper
5de4f668ed
Update to use project dir for file tracing base (#30857)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-11-04 10:23:28 +01:00
Furkan MT
95182480bf
fixes #30604 - Cannot read properties of null (reading 'tagName') (#30919)
* Cannot read properties of null (reading 'tagName')

https://github.com/vercel/next.js/issues/30604


Co-authored-by: Steven <steven@ceriously.com>
2021-11-03 20:24:12 -04:00
jj@jjsweb.site
c6c240302b
v12.0.3-canary.5 2021-11-03 18:36:15 -05:00
JJ Kasper
fc096d04bf
Keep using checkout instead of cache for building swc (#30923)
* Keep using checkout instead of cache for building swc

* test build

* re-add isRelease checks
2021-11-03 18:35:26 -05:00
Lee Robinson
2301e615f5
Update lock.yml (#30922) 2021-11-03 17:47:02 -05:00
Steven
72d69179b3
Update codeowners to be more specific (#30908)
* Update codeowners

Co-authored-by: Jiachi Liu <inbox@huozhi.im>
2021-11-03 18:34:33 -04:00
jj@jjsweb.site
00c491cecd
v12.0.3-canary.4 2021-11-03 16:59:36 -05:00
JJ Kasper
a3a592629a
Update to use repo specific napi instead of npx (#30914)
* Update to use repo specific napi instead of npx

* download build cache

* test running musl build

* Ensure napi is available for build-native-dev

* install globally in docker

* re-add isRelease check
2021-11-03 16:58:22 -05:00
JJ Kasper
9439d2711e
Skip next-swc canary postinstall in CI (#30916)
* Skip next-swc canary postinstall in CI

* lint-fix
2021-11-03 16:43:31 -05:00
Nicolas
19a6158631
Add config support for build activity indicator position (#30109)
When you edit your code, and Next.js is compiling the application, a compilation indicator appears in the bottom right corner of the page.

In some cases this indicator can be misplaced on the page, for example, when conflicting with a chat launcher. To change its position, open `next.config.js` and set the `buildActivityPosition` in the `devIndicators` object to `bottom-right` (default), `bottom-left`, `top-right` or `top-left`.

I also added the documentation for both `devIndicators.buildActivity` & the new `devIndicators.buildActivityPosition`.

## Feature

- [x] Implements a new feature
- [x] Documentation added
2021-11-03 21:17:36 +00:00
jj@jjsweb.site
f1f498ef28
v12.0.3-canary.3 2021-11-03 15:18:12 -05:00
JJ Kasper
6e64331e48
Fix musll -> musl typo (#30912) 2021-11-03 15:07:29 -05:00
JJ Kasper
81a4cd2c6b
Re-enable linux-musl-x64 build target (#30910)
* Re-enable linux-musl-x64 build target

* copy swc build command

* uncomment needs

* remove strip

* update napi additional
2021-11-03 15:03:50 -05:00
Tim Neutkens
4c3fe0802e
Add linux-x64-musl to napi array (#30909)
Ensure it can be published to npm


## Bug

- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Errors have helpful link attached, see `contributing.md`

## Feature

- [ ] Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR.
- [ ] Related issues linked using `fixes #number`
- [ ] Integration tests added
- [ ] Documentation added
- [ ] Telemetry added. In case of a feature if it's used or not.
- [ ] Errors have helpful link attached, see `contributing.md`

## Documentation / Examples

- [ ] Make sure the linting passes by running `yarn lint`
2021-11-03 19:36:40 +00:00