github pages
でcreate-react-app
を使ったレポジトリのページを公開する。
基本的には、create-react-app
のドキュメント(Deployment | Create React App)の通りです。個人的にわかりづらかったところなどのメモを残しておきたいと思います。
基本的に既存のユーザーページ(username.github.io/
)にレポジトリのページ(username.github.io/reponame/
)を追加するという観点でやっています。
githubにレポジトリを作成
proアカウントでないと、privateのままで公開することはできないようです。
参考: Creating a GitHub Pages site - GitHub Docs
レポジトリの名前と、package.json
で指定するhomepage
の値は一致させておきます。username.github.io/reponame
といったURLになるためです。
package.json
create-react-app
のドキュメントに従って、"scripts"
への追加と、"homepage"
の追加を行います:
{
// ...
"homepage": "https://username.github.io/reponame",
"scripts": {
"predeploy": "yarn build", // もしくは npm run build
"deploy": "gh-pages -d build",
// ...
},
// ...
}
githubのレポジトリ作成のところでも書きましたが、package.json
の中で指定する"homepage"
の値は、githubのレポジトリ名と一致させます。
yarn add -D gh-pages
でgh-pages
のインストールも忘れずに行います。これはgh-pages
ブランチを自動で作ってファイルを設定してくれるCLIツールです。詳細はgh-pages - npmにて。
レポジトリのページではなく、ユーザーページの場合(username.github.io
)は、main
ブランチやmaster
ブランチが使われるので、deploy
のコマンドは、gh-pages -b main -d build
などのようにブランチ名を指定しておきましょう。
github pagesにデプロイ
あとは、デプロイだけです。一旦、githubのリモートレポジトリのmain
ブランチにプッシュしましたが、これは必要なさそうです。
yarn deploy
でgh-pages
ブランチがなければ作成されて、ビルドされたファイルがプッシュされます。
URLの設定がうまくいっていればpackage.json
の"homepage"
で設定したURL(https://username.github.io/reponame
など)にアクセスして確認できます。
レポジトリ側の設定は、githubのレポジトリトップページのSettings
からPages
から確認できます。
おわり
当然だと思いますが、reponame
の一致には気をつけましょう。
gh-pages
ブランチだけをgithubのレポジトリにプッシュすれば、proアカウントでなくてもソースを公開しないでできそうだなーと思いました。
bitbucketなどのもgithub pages
に上げやすそうだと思います。
以上です。
Amazonアソシエイト
コメント