tag:crieit.net,2005:https://crieit.net/magazines/aocory/%E3%83%96%E3%83%AD%E3%82%AC%E3%83%BC%E5%90%91%E3%81%91Gatsby%E8%AC%9B%E5%BA%A7/feed [連載] ブロガー向けGatsby講座の投稿 - Crieit Crieitで連載「[連載] ブロガー向けGatsby講座」の最近の投稿 2019-02-09T11:28:59+09:00 https://crieit.net/magazines/aocory/%E3%83%96%E3%83%AD%E3%82%AC%E3%83%BC%E5%90%91%E3%81%91Gatsby%E8%AC%9B%E5%BA%A7/feed tag:crieit.net,2005:PublicArticle/14789 2019-02-09T11:28:59+09:00 2019-02-09T11:28:59+09:00 https://crieit.net/posts/GatsbyJs-Sitemap GatsbyJsでSitemapを使う <h2 id="GatsbyJSでgatsby-plugin-sitemapを使う"><a href="#GatsbyJS%E3%81%A7gatsby-plugin-sitemap%E3%82%92%E4%BD%BF%E3%81%86">GatsbyJSでgatsby-plugin-sitemapを使う</a></h2> <p>GatsbyJSでGoogleにSiteMapを作成して登録したかったのでプラグインgatsby-plugin-sitemapを実装してみた。</p> <h2 id="GatsbyJSでgatsby-plugin-sitemapの使い方"><a href="#GatsbyJS%E3%81%A7gatsby-plugin-sitemap%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9">GatsbyJSでgatsby-plugin-sitemapの使い方</a></h2> <ul> <li>インストール</li> <li>Gatsby-config.jsのセッティング</li> <li>サンプルコード</li> </ul> <h2 id="Styled Componentsのインストール"><a href="#Styled+Components%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB">Styled Componentsのインストール</a></h2> <p>npmコマンドでインストールします。</p> <pre><code>npm install --save gatsby-plugin-sitemap </code></pre> <h2 id="Gatsby-config.jsのセッティング"><a href="#Gatsby-config.js%E3%81%AE%E3%82%BB%E3%83%83%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0">Gatsby-config.jsのセッティング</a></h2> <p>Gatsby Config.jsを以下のようにします。</p> <pre><code>module.exports = { siteMetadata: { siteUrl: `https://www.example.com`, }, plugins: [`gatsby-plugin-sitemap`], } </code></pre> <h2 id="動作確認"><a href="#%E5%8B%95%E4%BD%9C%E7%A2%BA%E8%AA%8D">動作確認</a></h2> <pre><code>gatsby build </code></pre> <p>で確認すると</p> <p>Publicフォルダを確認してみるとsitemap.xmlが出来ている。</p> <p>サーチコンソールからサイトマップを追加してみるとエラーゼロで完成している。</p> aocory tag:crieit.net,2005:PublicArticle/14788 2019-02-08T18:05:29+09:00 2019-02-08T22:41:17+09:00 https://crieit.net/posts/GatsbyJS-Styled-Components GatsbyJSでStyled Componentsを使う <h2 id="GatsbyJSでStyled Componentsを使う"><a href="#GatsbyJS%E3%81%A7Styled+Components%E3%82%92%E4%BD%BF%E3%81%86">GatsbyJSでStyled Componentsを使う</a></h2> <p>GatsbyJSでCSSモジュールを用いたスタイリングもいいが、CSSinJSで書いたほうが便利そうということでStyled Componentsを使ってみた。</p> <h2 id="GatsbyJSでStyled Componentsの使い方"><a href="#GatsbyJS%E3%81%A7Styled+Components%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9">GatsbyJSでStyled Componentsの使い方</a></h2> <ul> <li>インストール</li> <li>Gatsby-config.jsのセッティング</li> <li>サンプルコード</li> </ul> <h2 id="Styled Componentsのインストール"><a href="#Styled+Components%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB">Styled Componentsのインストール</a></h2> <p>npmコマンドでインストールします。</p> <pre><code>npm install --save gatsby-plugin-styled-components styled-components babel-plugin-styled-components </code></pre> <h2 id="Gatsby-config.jsのセッティング"><a href="#Gatsby-config.js%E3%81%AE%E3%82%BB%E3%83%83%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0">Gatsby-config.jsのセッティング</a></h2> <p>Gatsby Config.jsを以下のようにします。</p> <pre><code>module.exports = { plugins: [`gatsby-plugin-styled-components`], } </code></pre> <h2 id="書き直す"><a href="#%E6%9B%B8%E3%81%8D%E7%9B%B4%E3%81%99">書き直す</a></h2> <p>index.jsはこのように書き直せます。</p> <pre><code>import React from 'react' import { Link } from 'gatsby' import styled from 'styled-components' import Layout from '../components/layout' import Image from '../components/image' const ImgWrapper = styled.div` max-width: 300px; margin-bottom: 1.45rem; ` const IndexPage = () => ( <Layout> <h1>Hi people</h1> <p>Welcome to your new Gatsby site.</p> <p>Now go build something great.</p> <ImgWrapper> <Image /> </ImgWrapper> <Link to="/page-2/">Go to page 2</Link> </Layout> ) export default IndexPage </code></pre> <p>header.jsは、このように書き直すことができます。</p> <pre><code>import React from 'react' import { Link } from 'gatsby' import styled from 'styled-components' const HeaderWrapper = styled.div` background: rebeccapurple; margin-bottom: 1.45rem; ` const Headline = styled.div` margin: 0 auto; max-width: 960; padding: 1.45rem 1.0875rem; h1 { margin: 0; } ` const StyledLink = styled(Link)` color: white; textdecoration: none; ` const Header = ({ siteTitle }) => ( <HeaderWrapper> <Headline> <h1> <StyledLink to="/">{siteTitle}</StyledLink> </h1> </Headline> </HeaderWrapper> ) export default Header </code></pre> <h3 id="使ってみた感想"><a href="#%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%BF%E3%81%9F%E6%84%9F%E6%83%B3">使ってみた感想</a></h3> <p>かなりStyled Components便利!一長一短ありますが、スコープ効いて名前が長くならないのはいいですね。</p> aocory tag:crieit.net,2005:PublicArticle/14781 2019-02-05T18:18:45+09:00 2019-02-05T18:18:45+09:00 https://crieit.net/posts/GatsbyJs-Font-Typeface GatsbyJsでFontを変更するTypeface編 <h2 id="GatsbyJSでFontを変更したい"><a href="#GatsbyJS%E3%81%A7Font%E3%82%92%E5%A4%89%E6%9B%B4%E3%81%97%E3%81%9F%E3%81%84">GatsbyJSでFontを変更したい</a></h2> <p>以前、gatsby-plugin-typographyで対応する方法を検討した。<br /> しかし、Noto Sans JPなどのフォントを使う時はGoogleフォントを読み込んでしまい、パフォーマンスが落ちるのが気になった。</p> <h2 id="Typefaceを使う"><a href="#Typeface%E3%82%92%E4%BD%BF%E3%81%86">Typefaceを使う</a></h2> <p>そこで、Gtasbyでは最近Typefaceを推奨している。<br /> npmでインストールしてimportで読み込む仕組みでこっちのほうが早いらしい。<br /> 早速使ってみた。</p> <ul> <li>Typefaceのインストール</li> <li>Layout.jsにインポート</li> <li>css設定</li> </ul> <h3 id="Typefaceのインストール"><a href="#Typeface%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB">Typefaceのインストール</a></h3> <p>今回はlatoというFontをインストールしてみる。</p> <pre><code>npm install --save typeface-lato </code></pre> <h3 id="Layout.jsにインポート"><a href="#Layout.js%E3%81%AB%E3%82%A4%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%88">Layout.jsにインポート</a></h3> <p>インストール出来たらLayout.jsにインポートする</p> <pre><code>import 'typeface-lato' </code></pre> <p>これだけではFontは動かないCSSの設定が必要になる。</p> <h3 id="CSSに記載"><a href="#CSS%E3%81%AB%E8%A8%98%E8%BC%89">CSSに記載</a></h3> <p>CSSに記載する。</p> <pre><code> { font-family: Lato } </code></pre> <p>これで動く。</p> aocory tag:crieit.net,2005:PublicArticle/14778 2019-02-04T08:55:55+09:00 2019-02-04T08:55:55+09:00 https://crieit.net/posts/GatsbyJs-Webpack GatsbyJsでWebpackバンドルサイズを確認する <h2 id="GatsbyJsでWebpackバンドルサイズを確認する"><a href="#GatsbyJs%E3%81%A7Webpack%E3%83%90%E3%83%B3%E3%83%89%E3%83%AB%E3%82%B5%E3%82%A4%E3%82%BA%E3%82%92%E7%A2%BA%E8%AA%8D%E3%81%99%E3%82%8B">GatsbyJsでWebpackバンドルサイズを確認する</a></h2> <p>当たり前だがAdSenseを入れるとサイト遅くなった。<br /> 原因を探るため我々はGatsbyJsを良い感じにしてくれているWebPackの奥地に向かった。と言えば簡単なのだが<br /> WebPackは魔境だ。僕みたいな素人が触っても火傷するだけ。ということでパッケージを探した。</p> <h2 id="gatsby-plugin-webpack-bundle-analyzerを使う"><a href="#gatsby-plugin-webpack-bundle-analyzer%E3%82%92%E4%BD%BF%E3%81%86">gatsby-plugin-webpack-bundle-analyzerを使う</a></h2> <p>gatsby-plugin-webpack-bundle-analyzerというプラグインが便利そうだ。<br /> + gatsby-plugin-webpack-bundle-analyzerのインストール<br /> + gatsby-config.jsの設定<br /> + 確認</p> <h2 id="gatsby-plugin-webpack-bundle-analyzerのインストール"><a href="#gatsby-plugin-webpack-bundle-analyzer%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB">gatsby-plugin-webpack-bundle-analyzerのインストール</a></h2> <pre><code>npm install --save gatsby-plugin-webpack-bundle-analyzer </code></pre> <h2 id="gatsby-config.jsの設定"><a href="#gatsby-config.js%E3%81%AE%E8%A8%AD%E5%AE%9A">gatsby-config.jsの設定</a></h2> <p>gatsby-config.jsの設定を追加してやる</p> <pre><code>plugins: [ 'gatsby-plugin-webpack-bundle-analyzer', ] </code></pre> <h2 id="確認"><a href="#%E7%A2%BA%E8%AA%8D">確認</a></h2> <pre><code>gatsby develop </code></pre> <p>で自動的にブラウザに表示される。<br /> ただ、毎回起動されるのはウザいので使わないときはコメントアウト推奨。</p> aocory tag:crieit.net,2005:PublicArticle/14774 2019-01-31T16:14:42+09:00 2019-01-31T16:14:42+09:00 https://crieit.net/posts/GatsbyJS-Static GatsbyJSでStaticにファイルを置く <h2 id="Staticファイルを置きたい"><a href="#Static%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E7%BD%AE%E3%81%8D%E3%81%9F%E3%81%84">Staticファイルを置きたい</a></h2> <p>Gatsbyはイメージファイルなどは自動で圧縮してくれるし、リサイズもしてくれるデキるやつです。<br /> しかし、PWAにサイトをしたり、ソーシャルアイコンのイメージ画像を扱う時は/img/logo.pngなどのようにファイルを扱いたいです。そこでやり方を調べました。</p> <h2 id="GatsbyJSでStaticにファイルを置く方法"><a href="#GatsbyJS%E3%81%A7Static%E3%81%AB%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E7%BD%AE%E3%81%8F%E6%96%B9%E6%B3%95">GatsbyJSでStaticにファイルを置く方法</a></h2> <ul> <li>rootディリクトリにstaticフォルダーを作成</li> <li>staticにファイルを置く</li> <li>withPrefixを読み込むコンポーネントに記載</li> <li>gatsby-config.jsに変更</li> </ul> <h2 id="rootディリクトリにstaticフォルダーを作成"><a href="#root%E3%83%87%E3%82%A3%E3%83%AA%E3%82%AF%E3%83%88%E3%83%AA%E3%81%ABstatic%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E3%83%BC%E3%82%92%E4%BD%9C%E6%88%90">rootディリクトリにstaticフォルダーを作成</a></h2> <p>/blog/static/imgを作成します。</p> <h2 id="staticにファイルを置く"><a href="#static%E3%81%AB%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E7%BD%AE%E3%81%8F">staticにファイルを置く</a></h2> <p>/static/img/logo.pngを今回は作成します。</p> <h2 id="withPrefixを読み込むコンポーネントに記載"><a href="#withPrefix%E3%82%92%E8%AA%AD%E3%81%BF%E8%BE%BC%E3%82%80%E3%82%B3%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%8D%E3%83%B3%E3%83%88%E3%81%AB%E8%A8%98%E8%BC%89">withPrefixを読み込むコンポーネントに記載</a></h2> <p>staticファイルを読み込むにはwithPrefixの記載が必要です。</p> <pre><code>import { withPrefix } from 'gatsby' render() { return <img src={withPrefix('/img/logo.png')} alt="Logo" />; } </code></pre> <h2 id="gatsby-config.jsに変更"><a href="#gatsby-config.js%E3%81%AB%E5%A4%89%E6%9B%B4">gatsby-config.jsに変更</a></h2> <pre><code>module.exports = { pathPrefix: `/img`, } </code></pre> <p>注意"/img/"と記載してはいけません。</p> <h2 id="確認"><a href="#%E7%A2%BA%E8%AA%8D">確認</a></h2> <p><img src="https://frosty-wozniak-d3bb12.netlify.com/img/logo.png" alt="logo.png" /><br /> できた!</p> aocory