OghlinerというGitHub PagesでOfflineでWebAppsを使うnpm packageがあります。
https://hacks.mozilla.org/2015/11/offline-web-apps-on-github-pages/
これを使ってみます。
インストール
npm install oghliner
で導入できます、、、が、node-gyp
が必要なのでWindowsだと躓くかもしれません。
node-gyp
をbuildするためにwindows-build-tools
をインストールします。
npm install --global windows-build-tools
参考:https://qiita.com/AkihiroTakamura/items/25ba516f8ec624e66ee7
https://github.com/nodejs/node-gyp/issues/1056
さらに、これだけだと環境によってはcannot open input file 'C:\OpenSSL-Win64\lib\libeay32.lib
というエラーが出てnode-gyp
のbuildに失敗します。
Open-SSL-Win64 をインストールするか、下記を参考にして C:\OpenSSL-Win64\lib\
に libeay32.lib
を配置します。
参考:https://github.com/ethereumjs/ethereumjs-util/issues/43
ここまでやれば oghliner
のinstallに成功すると思います。
設定
GitHubリポジトリに既存のアプリがある場合は、integrate
コマンドを使います。
npm bin oghliner
./node_modules/.bin/oghliner integrate
このコマンドは、オフラインmanager.jsスクリプト(サービスワーカーを登録する)をアプリにコピーし、アプリのページ/テンプレートにそのスクリプトをロードするように促します。
既存のアプリがないケースはここでは省略します。
最後に、変更をコミットして設定を完了します。
アプリケーションをオフラインにするには、オフラインコマンドを呼び出して、アプリケーションをオフラインにするサービスワーカーを生成し、オフラインにするファイルを含むディレクトリを指定します。
oghliner offline dist/
アプリケーション(サービスワーカーを含む)をGitHub Pagesにデプロイするには、deployコマンドを呼び出して、アプリのファイルを含むディレクトリを再度指定します。
oghliner deploy dist/
これにより origin/gh-pages
ブランチに勝手にPushまでされます。