You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
注意事項として、gatsby-plugin-html2ampはHTMLからAMPを生成するプラグインなので、gatsby buildのプロセスの中でAMPを生成します。 npm run developして開発している際には、/amp/posts/の記事にアクセスしても記事は存在しないので、注意してください。
title: AMP to PWA をGatsbyで実装する
slug: amp-to-pwa-for-gatsby
lang: ja-JP
tags:
date: 2019-02-17
summary: AMP-to-PWAはPWAMPというAMPとPWAの合わせ技のアーキテクチャの1つです。今回はそれをGatsbyを使って実装する方法を説明します。
AMP to PWAとは
AMPからPWAをプリロードする方法としてAMPの公式ブログでは紹介されていて、AMPにアクセスしたタイミングでオリジナルコンテンツのリソースをService Workerで事前にキャッシュさせることで、AMPからPWAに遷移した際のロードを大幅に削減することができます。
AMPの公式ブログでの説明はこちら。
詳細は、AMPの公式ブログを参照ください!
この記事のゴール
Gatsbyを使って、ブログサイトを作るケースを例として、AMP to PWAを実装する方法を説明したいと思います。
目次
ブログの準備
Gatsbyには、サイトの雛形を共有し、他の人が使えるほうにする機能があります。
今回は、ブログサイト用の雛形である、gatsbyjs/gatsby-starter-blogを利用したいと思います。
$ npm install -g gatsby-cli $ gatsby new my-blog-starter https://github.com/gatsbyjs/gatsby-starter-blog $ cd my-blog-starter/
ブログ記事のパスを変える
gatsbyjs/gatsby-starter-blog
は初期設定では、サイトのルートディレクトリに記事が配信されていきます。(例:/hello-world
,/hi-folks
)今回は、AMP版の記事も同時に配信するので、下記のようにパスを分けます。
/posts
/amp/posts
それでは、まずNon-AMPのページのパス変更から。
AMP版の記事を生成させる
AMP記事の生成には、gatsby-plugin-html2ampを利用します。
HTMLを変換してAMPを生成するため、別でAMPページを作る必要はなく、少しの設定で利用が可能です。
下記設定を追加します。
AMPでservice workerをインストールさせる
ここがこのアーキテクチャのポイントです。
AMPにアクセスした際に、PWAのリソースをService workerを利用して事前にキャッシュします。
そのためのAMPのコンポーネントがamp-install-serviceworkerです。
gatsby-plugin-html2ampは該当コンポーネントをサポートしているので、gatsby-plugin-html2ampに設定に追加すれば、
amp-install-serviceworker
が追加されます。AMPのバリデーションをテストに追加
これまでの作業で、すでにAMP to PWAの設定は完了してますが、せっかくなので、AMPのバリデーションも追加しておきます。
$ npm test
ビルド
注意事項として、gatsby-plugin-html2ampはHTMLからAMPを生成するプラグインなので、
gatsby build
のプロセスの中でAMPを生成します。npm run develop
して開発している際には、/amp/posts/
の記事にアクセスしても記事は存在しないので、注意してください。Non-AMPとAMPを生成して確認するコマンドは下記です。
サンプルコード
こちらににコードをあげてあります。
The text was updated successfully, but these errors were encountered: