ParcelでバンドルしたプロジェクトをGitHub Pagesに表示する
Parcelで Parcelの導入や開発フローについては説明しません。
ページは一つだけで、cssとjsをロードする簡単なプロジェクトを想定します。
GitHub Pagesの表示はmasterブランチのdocsフォルダを使用する方式を採ります。
ディレクトリ構造
大まかなディレクトリ構造はこんな感じ。docsはGitHub Pagesで表示するためのディレクトリで、Parcelの本番用バンドルの出力先となります。
. ├── docs ├── index.html ├── src │ └── index.js └── style.css
index.htmlの記述
何の変哲もないlinkタグとscriptタグの記述ですが、本番用バンドルの出力と比較しやすいように載せておきます。
... <link rel="stylesheet" href="style.css" /> ... <script type="text/javascript" src="./src/index.js" charset="utf-8"></script> ...
本番用にバンドルする
本番用のbuildコマンドです。
--out-dir docs
オプションを指定し出力先をdocs
ディレクトリにする--public-url .
オプションを指定する
// package.json "scripts": { "dev": "node_modules/.bin/parcel index.html", "build": "node_modules/.bin/parcel build index.html --out-dir docs --public-url ." },
--public-urlオプションがないと実際にGitHub Pagesで表示したときにロードができなくなります。
--public-url .
を指定しない場合の出力結果
<link rel="stylesheet" href="/style.f5c87fca.css" /> ... <script type="text/javascript" src="/src.c52f2b67.js" charset="utf-8"></script>
--public-url .
を指定した場合の出力結果
<link rel="stylesheet" href="style.f5c87fca.css" /> ... <script type="text/javascript" src="src.c52f2b67.js" charset="utf-8"></script>