da4203d032
This adds a new ESLint rule to `eslint-plugin-next` to check that `next/script` components with inline content have the required `id` attribute. Also adjusted the code example for inline scripts in the `next/script` docs, which were actually missing an `id` attribute. And also updated the `next/scripts` integration test to also have the required `id` attribute. Unsure about the required heading levels in the errors .md document (other examples have h1 and h4??) ## 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 - [x] Documentation added - [ ] Telemetry added. In case of a feature if it's used or not. - [x] Errors have helpful link attached, see `contributing.md` ## Documentation / Examples - [ ] Make sure the linting passes
26 lines
645 B
Markdown
26 lines
645 B
Markdown
# next/script components with inline content require an `id` attribute
|
|
|
|
## Why This Error Occurred
|
|
|
|
`next/script` components with inline content require an `id` attribute to be defined to track and optimize the script.
|
|
|
|
## Possible Ways to Fix It
|
|
|
|
Add an `id` attribute to the `next/script` component.
|
|
|
|
```jsx
|
|
import Script from 'next/script'
|
|
|
|
export default function App({ Component, pageProps }) {
|
|
return (
|
|
<>
|
|
<Script id="my-script">{`console.log('Hello world!');`}</Script>
|
|
<Component {...pageProps} />
|
|
</>
|
|
)
|
|
}
|
|
```
|
|
|
|
## Useful links
|
|
|
|
- [Docs for Next.js Script component](https://nextjs.org/docs/basic-features/script)
|