Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
chore: improve error when exporting metadata from client component (#…
…46334) <!-- Thanks for opening a PR! Your contribution is much appreciated. To make sure your PR is handled as smoothly as possible we request that you follow the checklist sections below. Choose the right checklist for the change(s) that you're making: --> This improves the ambiguous error seen when exporting `metadata` or `generateMetadata` from a component marked with the `"use client";` directive. Example output from tests (`pnpm test-dev test/development/acceptance-app/rsc-build-errors.test`) ```console File path: app/client-with-errors/metadata-export/page.js console.log browser log: ./app/client-with-errors/metadata-export/page.js ReactServerComponentsError: You are attempting to export "generateMetadata" from a component marked with "use client", which is disallowed. Either remove the export, or the "use client" directive. Read more: https://beta.nextjs.org/docs/api-reference/metadata ,-[6:1] 6 | 7 | // export const metadata = { title: 'client-metadata' } 8 | 9 | export async function generateMetadata() { return { title: 'client-metadata' } } : ^^^^^^^^^^^^^^^^ `---- File path: app/client-with-errors/metadata-export/page.js ``` ## Bug - [ ] Related issues linked using `fixes #number` - [x] Integration tests added - [x] Errors have a helpful link attached, see [`contributing.md`](https://github.com/vercel/next.js/blob/canary/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` - [ ] [e2e](https://github.com/vercel/next.js/blob/canary/contributing/core/testing.md#writing-tests-for-nextjs) tests added - [ ] Documentation added - [ ] Telemetry added. In case of a feature if it's used or not. - [ ] Errors have a helpful link attached, see [`contributing.md`](https://github.com/vercel/next.js/blob/canary/contributing.md) ## Documentation / Examples - [x] Make sure the linting passes by running `pnpm build && pnpm lint` - [ ] The "examples guidelines" are followed from [our contributing doc](https://github.com/vercel/next.js/blob/canary/contributing/examples/adding-examples.md) --------- Co-authored-by: Jiachi Liu <[email protected]>
- Loading branch information