StorybookでNext/ImageのImageタグに設定した画像を表示させる。

投稿日 : 2022-02-19

更新日 : 2022-02-19

経緯

Next.jsのプロジェクトにStorybookを入れ、コンポーネントのストーリーを作成すると、デフォルトの状態ではStorybookの画面にてNext/ImageのImageタグに設定した画像が表示されません。(ビルドされるサーバが異なることに起因する・・?)

これを解消するために、.storybook/preview.jsに設定を追加してあげる必要があります。
ここでの処理の概要としては、next/imageタグをimgタグに付け替えて表示をさせるイメージです。

.storybook/preview.jsに設定を追加する。

// 下記を追加。
import * as nextImage from "next/image";

Object.defineProperty(nextImage, "default", {
 configurable: true,
 value: (props) => <img {...props} />,
});


設定追加後、再度Storybookを立ち上げて、コンポーネントの画面を確認すると、見れなかった画像(下記ではNext.jsのロゴ)が見れるようになるはずです!