5211ac5cae
* Adds consistency to ESLint rules. * Fixes lint errors. * Fixes manifest. * Adds missing title. * Fixes copy / paste error. Co-authored-by: Lee Robinson <me@leerob.io> * Update errors/no-script-in-document.md Co-authored-by: Lee Robinson <me@leerob.io> * Update errors/no-sync-scripts.md Co-authored-by: Lee Robinson <me@leerob.io> * Updates a couple of rule descriptions. * Adds redirects. * Fixes unit tests. * Removes duplicated section. * Updates `no-before-interactive-script-outside-document` description. * Fixes lint. * Fixes integration tests. * Adds description to `no-before-interactive-script-outside-document` documentation. * Removes `link-passhref` from rules list. * Updates remaining `pages/_middleware.js` references. * Adds consistancy to messaging in new `no-styled-jsx-in-document` rule. * Apply suggestions from code review * Apply suggestions from code review Co-authored-by: Lee Robinson <me@leerob.io> Co-authored-by: Tim Neutkens <tim@timneutkens.nl> Co-authored-by: JJ Kasper <jj@jjsweb.site>
37 lines
716 B
Markdown
37 lines
716 B
Markdown
# No Sync Scripts
|
|
|
|
> Prevent synchronous scripts.
|
|
|
|
### Why This Error Occurred
|
|
|
|
A synchronous script was used which can impact your webpage performance.
|
|
|
|
### Possible Ways to Fix It
|
|
|
|
#### Script component (recommended)
|
|
|
|
```jsx
|
|
import Script from 'next/script'
|
|
|
|
function Home() {
|
|
return (
|
|
<div class="container">
|
|
<Script src="https://third-party-script.js"></Script>
|
|
<div>Home Page</div>
|
|
</div>
|
|
)
|
|
}
|
|
|
|
export default Home
|
|
```
|
|
|
|
#### Use `async` or `defer`
|
|
|
|
```html
|
|
<script src="https://third-party-script.js" async />
|
|
<script src="https://third-party-script.js" defer />
|
|
```
|
|
|
|
### Useful Links
|
|
|
|
- [Efficiently load third-party JavaScript](https://web.dev/efficiently-load-third-party-javascript/)
|