0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Gatsby.jsのTypeScript対応手順

Last updated at Posted at 2020-12-27

手順

1. ts-node, typescript, gatsby-plugin-graphql-codegenをインストール

yarn add ts-node typescript gatsby-plugin-graphql-codegen

※ GatsbyでTypeScriptのサポートがデフォルトになったので、gatsby-plugin-typescriptは不要

2. gatsby-node.jsファイルを作成して以下を記述

gatsby-node.js
"use strict"

require("ts-node").register({
  compilerOptions: {
    module: "commonjs",
    target: "esnext",
  },
})

exports.createPages = require("./gatsby-node/index").createPages

3. tsconfig.jsonファイルを作成して以下を記述

tsconfig.json
{
  "compilerOptions": {
    "module": "commonjs",
    "target": "esnext",
    "strict": true,
    "sourceMap": true,
    "noImplicitAny": true,
    "esModuleInterop": true,
    "jsx": "react",
    "lib": ["dom", "esnext"]
  },
  "include": ["./types/**/*", "./gatsby-node/**/*", "./src/**/*"]
}

4. typesディレクトリを作成して、その配下にgraphql-types.d.tsファイルを作成

5. gatsby-config.jsに以下を記述

gatsby-config.js
plugins: [
  ...,
  {
    resolve: `gatsby-plugin-graphql-codegen`,
    options: {
      fileName: `types/graphql-types.d.ts`,
    },
  }
]

詳細

TypeScript

メリット

  • コンパイルエラーによってJavaScriptではフォローできない、スクリプト実行前の未然検知を可能にする。
  • IDEと組み合わせることで型補完やエラーを表示させ開発体験を向上させることができる。

gatsby-plugin-graphql-codegen

  • srcディレクトリ内でimport { graphql } from "gatsby"しているファイルの query 定義から、型定義が自動生成されます。
  • 自動生成した型定義はgatsby-config.jsfileNameで指定したファイルに記述されます。

ディレクトリ構成

gatsby-node
  └── index.ts
src
  ├── components
  ├── pages
  ├── styles
  ├── templates
  └── utils
static
types
  └── graphql-types.d.ts
.gitignore
.prettierignore
.prettierrc
gatsby-config.js
gatsby-node.js
package.json
package-lock.json
tsconfig.json
yarn.lock

参考文献

GatsbyのTypeScript化関連の記事・Githubリポジトリ

ts-node

tsconfig.json

gatsby-plugin-graphql-codegen

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?