Skip to content

Latest commit

 

History

History
 
 

plugin-nextjs

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

@putout/plugin-nextjs NPM version

🐊Putout plugin adds ability to migrate to latest version of Next.js. Not Bundled.

Install

npm i putout @putout/plugin-nextjs -D

Add .putout.json with:

{
    "plugins": [
        "nextjs"
    ]
}

Rules

Here is list of rules:

{
    "rules": {
        "nextjs/remove-a-from-link": "on",
        "nextjs/convert-page-to-head": "on"
    }
}

remove-a-from-link

Next.js 12: <a> has to be nested otherwise it's excluded, Next.js 13: <Link> always renders <a> under the hood.

Check out in 🐊Putout Editor.

❌ Example of incorrect code

import Link from 'next/link';

export default function Nav() {
    <Link href="/about">
        <a>
            About
        </a>
    </Link>;
}

✅ Example of correct code

import Link from 'next/link';

export default function Nav() {
    <Link href="/about">
        About
    </Link>;
}

convert-page-to-head

In the pages directory, the next/head React component is used to manage <head> HTML elements such as title and meta . In the app directory, next/head is replaced with a new head.js special file.

Check out in 🐊Putout Editor.

❌ Example of incorrect code

import Head from 'next/head';

export default function Page() {
    return (
        <>
            <Head>
                <title>
                    My page title
                </title>
            </Head>
        </>
    );
}

✅ Example of correct code

export default function Head() {
    return (
        <>
            <title>
                My page title
            </title>
        </>
    );
}

License

MIT