2025.05.19

GatsbyでGifを動作させる(TypeScript)

Shuji
- Gatsby
- TypeScript
はじめに
gatsbyでgif画像をアニメーションしている状態で表示させたいという場面があり、普通に../images/フォルダにgifファイルを置いても動作できなかったので、やり方を調べてみました。
本家ドキュメントによると
ドキュメントにはimagesではなく、../gifs/フォルダに置いてとありました。
../images/ に入れた場合gatsby-plugin-image で最適化の対象となりますが、gifアニメーションはその最適化を受けられないようです。
../gifs/ (フォルダ名はなんでもよいようですが)に入れた場合、通常の静的アセットとして扱われるということです。
import * as React from 'react'
import Layout from '../components/layout'
import otterGIF from '../gifs/otter.gif'
const AboutPage = () => (
return (
<Layout>
<img src={otterGIF} alt="Otter dancing with a fish" />
</Layout>
)
)
export default AboutPage;型定義
ただ、typescriptの場合では型エラーが出るため、
Cannot find module '../gifs_test/audio.gif' or its corresponding type declarations.ts(2307)以下のようにしておくと、.gif ファイルを 型安全にインポート できるようになります。
declare module "*.gif" {
const value: string
export default value
}これで、Gatsby で GIF をスムーズに動作させることができました。






![[Gatsby.js] gatsby-plugin-canonical-urlsでcanonicalタグを生成するのアイキャッチ画像](https://images.microcms-assets.io/assets/0e1a47976b6b480f93b35e041ab5fe03/7bfa208af2ba483abc6b8841e398f8b7/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%202025-05-07%203.03.49.png)