手順
gatsby-plugin-react-svg
をインストールするgatsby-config.js
の plugins にgatsby-plugin-react-svg
を追記する- svg の型定義ファイルを作成する
tsconfig.json
で型定義ファイルを認識させる
手順詳細
$ yarn add gatsby-plugin-react-svg
// gatsby-config.js
plugins: [
{
resolve: "gatsby-plugin-react-svg",
options: {
rule: {
include: /assets/, // 読み込みたいSVGファイルが置いてあるフォルダを指定する
},
},
},
]
普通の JavaScript であれば、ここまでの設定で以下のように SVG ファイルをコンポーネントとして import 出来るようになります。
import Icon from "./path/assets/icon.svg"
// ...
;<Icon />
しかし TypeScript で開発している場合は、以下の様に型定義ファイルがないことでエラーが発生します。 なので型定義ファイルを追加します。
// src/index.d.ts
declare module "*.svg" { import React = require("react") export const ReactComponent: React.SFC<React.SVGProps<SVGSVGElement>> const src: string export default src}
tsconfig.json に、下記を追記しこの型定義ファイルを読み込めば完了です。
// tsconfig.json
"compilerOptions": {
//...
"baseUrl": ".", "paths": { "*": ["src/*"] } }