概要

Error: Do not use . Use Image from ’next/image’ instead.への対応にあたり、以下の記事が参考になりました。

https://stackoverflow.com/questions/68203582/error-do-not-use-img-use-image-from-next-image-instead-next-js-using-ht

上記の記事に基づき、ChatGPTによる回答を以下に掲載します。間違っている点もあるかもしれませんが、参考になりましたら幸いです。

Next.jsのESLintルール変更とフラットコンフィグの設定方法

Next.js 11以降、ESLintの設定がデフォルトで提供されるようになり、@next/next/no-img-element ルールが追加されました。このルールにより、通常の<img>タグの使用が制限され、Next.jsのnext/imageコンポーネントを推奨するようになっています。

しかし、プロジェクトによっては<img>タグを使いたい場合もあるでしょう。そのため、このESLintルールを無効化する方法を紹介します。

1. 従来の設定方法(.eslintrc.js

以前のNext.jsのESLint設定は、.eslintrc.js に次のように記述することで変更できました。

m}o;dr}uu,ll"ee@.sne:exxp{to/rntesxt=/n{o-img-element":"off",

しかし、Next.jsのESLintは「フラットコンフィグ(Flat Configuration)」へ移行しました。そのため、.eslintrc.js ではなく、eslint.config.mjs を使用する必要があります。

2. フラットコンフィグの設定方法(eslint.config.mjs

現在のNext.jsプロジェクトでESLintのルールを変更するには、eslint.config.mjs ファイルを作成し、以下のように記述します。

iiiccc}c]emmmooo)o;xpppnnnb;n{}pooosssas,orrrtttst.r}rtttecu,tcDeol"{{{__oisme@dfdmrlpsnedfFiipeia:efiillracntxarlaenttt.{tunetnaoCe/laUCam=roxntmRomeynteeLmen:fexeTp=eints}oa=wgd/lPtd_snifafiFd=(onrt}irli"-tohlnar[niCmfeatnemo}rUmCaxgn"oReomt-fpfmL(me/eiarT_p,clgto"o_aoe;hm@Pftrm"eai(ee;"stl{-nulhewtri(ne"lniab:"tmm-;/pev"eo)iosr;tfltafi.l"nms,te"rt,ca".";unrelx)t;/typescript"),

この設定を適用することで、Next.jsのプロジェクトでも通常の<img>タグを使用できるようになります。

3. どの方法を使うべきか?

  • Next.js 11以前のプロジェクト.eslintrc.js を使用
  • Next.js 12以降のプロジェクトeslint.config.mjs を使用

最新のNext.js環境ではフラットコンフィグを利用するのが推奨されているため、新規プロジェクトではeslint.config.mjs を設定するのがベストです。

Next.jsのアップデートに伴い、ESLintの設定方法も変わっています。これからNext.jsを使う方は、ぜひ新しいフラットコンフィグを活用してください!