Skip to content
← Back to rules

nextjs/no-head-import-in-document 正しさ

何をするのか

pages/_document.js 内部での next/head の使用を禁止します。

なぜこれは悪いのか

pages/_document.js 内で next/head をインポートすると、Next.js アプリケーションで予期しない問題が発生する可能性があります。

このルールに対する誤りの例:

jsx
import Document, { Html, Main, NextScript } from "next/document";
import Head from "next/head";

class MyDocument extends Document {
  static async getInitialProps(ctx) {
    //...
  }

  render() {
    return (
      <Html>
        <Head></Head>
      </Html>
    );
  }
}

export default MyDocument;

このルールに対する正しい例:

jsx
import Document, { Html, Head, Main, NextScript } from "next/document";

class MyDocument extends Document {
  static async getInitialProps(ctx) {
    //...
  }

  render() {
    return (
      <Html>
        <Head></Head>
      </Html>
    );
  }
}

export default MyDocument;

使い方

このルールを有効化するには、設定ファイルまたは CLI を使用して次のように指定できます:

json
{
  "plugins": ["nextjs"],
  "rules": {
    "nextjs/no-head-import-in-document": "error"
  }
}
bash
oxlint --deny nextjs/no-head-import-in-document --nextjs-plugin

参照