GatsbyJSのgatsby-source-filesystemを使ってみる
01 21, 2019
Gatsbyの強力すぎる管理能力
GatsbyJSには、gatsby-source-filesystemというライブラリがあります。 これの凄いところは色々なソースファイルをGraphQLでまとめてに管理できるところです。 ソースファイルとしては
- Qiita
- Wordpress
- Netlify CMS
- AirtTable
- CSV
- Markdown
- Excel
とか色々なモノを同じように扱えます。 これが最高に便利でイケています。 今回は、imageのソースファイルを/contents/images/に変更したいと思います。
gatsby-source-filesystemのインストール(不要)
この章は基本的にgatsby-source-filesystemはdefalt starterに入っているので必要ありません。
npm install --save gatsby-source-filesystem
これでgatsby-source-filesystemがインストールされました。 次にconfigをいじっていきます。
gatsby-config.jsの設定
gatsby-config.jsはこのようになっていると思います。
module.exports = {
siteMetadata: {
title: `Gatsby Default Starter`,
description: `Kick off your next, great Gatsby project with this default starter. This barebones starter ships with the main Gatsby configuration files you might need.`,
author: `@gatsbyjs`,
},
plugins: [
`gatsby-plugin-react-helmet`,
{
resolve: `gatsby-source-filesystem`,
options: {
name: `images`,
path: `${__dirname}/src/images`,
},
},
`gatsby-transformer-sharp`,
`gatsby-plugin-sharp`,
{
resolve: `gatsby-plugin-manifest`,
options: {
name: `gatsby-starter-default`,
short_name: `starter`,
start_url: `/`,
background_color: `#663399`,
theme_color: `#663399`,
display: `minimal-ui`,
icon: `src/images/gatsby-icon.png`, // This path is relative to the root of the site.
},
},
// this (optional) plugin enables Progressive Web App + Offline functionality
// To learn more, visit: https://gatsby.app/offline
// 'gatsby-plugin-offline',
],
}
ここの
{
resolve: `gatsby-source-filesystem`,
options: {
name: `images`,
path: `${__dirname}/src/images`,
},
},
ここがimageのgatsby-source-filesystemの設定です。 ここを
{
resolve: `gatsby-source-filesystem`,
options: {
name: `images`,
path: `${__dirname}/contents/images`,
},
},
にかえてimageフォルダをcontentsフォルダにコピーしてみましょう。 そしてgatsby developとコマンドを打ってみましょう。エラーが出ます。
Error: icon (src/images/gatsby-icon.png) does not exist as defined in gatsby-config.js. Make sure the file exists rela tive to the root of the site.
これは
resolve: `gatsby-plugin-manifest`,
options: {
name: `gatsby-starter-default`,
short_name: `starter`,
start_url: `/`,
background_color: `#663399`,
theme_color: `#663399`,
display: `minimal-ui`,
icon: `src/images/gatsby-icon.png`, // This path is relative to the root of the site.
},
のiconが悪さをしています。
resolve: `gatsby-plugin-manifest`,
options: {
name: `gatsby-starter-default`,
short_name: `starter`,
start_url: `/`,
background_color: `#663399`,
theme_color: `#663399`,
display: `minimal-ui`,
icon: `contents/images/gatsby-icon.png`, // This path is relative to the root of the site.
},
に修正してみましょう。 バッチリ出来ましたね。
#つぎはMarkdownファイルを扱えるようにしていきます。