Next.js14とGitHub Pagesでブログを作ってみる: 基本設定
October 30, 2024
2024年の後半はNext.js12から14にマイグレーションするプロジェクトで、App RouterとPages Routerの並行だったり、12と14のレンダリング方式の相違だったりでReactの基礎とNext.jsの理解にかなり役立つ経験ができた。せっかくの機会なので頭を14に切り替えたく14を使ってMarkdownブログを作ってみた。
今回GitHub Pagesに静的サイト[1]でデプロイすることでサーバコンポーネント(Server Components, SC)とクライアントコンポーネント(Client Components, CC)の分離の練習にもなった。今後は検索機能なども追加していくつもりだ。それでは早速GitHubの設定から始める。
tools
* Next.js 14
* TypeScript
* TailwindCSS
* GitHub Pages
GitHub 設定
GitHub Pages用のリポジトリはルールとして
または
でリポジトリの名前をつける必要がある。
変なリポジトリ名にしてあるのは、私は既にGitHub Pagesを作ったからで、
このポストのコードはプロジェクトサイト[2]としてデプロイする。
⇒ 正しくは、gyute.github.ioと入力
リポジトリ名をルール通り作ること[2]で、GitHubが自動でリポジトリ名をURLにしてホスティングしてくれる。
リポジトリの作成が完了したら、作成されたリポジトリに移動し、Settings > Pages
を選択する。
そしてBuild and deployment
のSource
をGitHub Actions
に変更し、Next.js
のConfigure
をクリックする。
すると、
が作成されるので右上のCommit changes...
をクリック、コミットメッセージを入力してコミットする。
これでGitHubでの設定は完了。この時点ではhttps://<user>.github.io
にアクセスしても404が表示されるだけ。
Next.js プロジェクト作成
ターミナルで作業予定のディレクトリに移動し、
を入力、初期設定を行う。
今後のことも考えてプロジェクト名は<user>.github.io
と入力。その後は、Yes > Yes > Yes > No > Yes > No
に選択したが、デフォルトのままなのでエンターを押し続けるだけ。TypeScript
、ESLint
、Tailwind CSS
、App Router
は全部使うし、src/
とcustomize import alias
は使わない。
create-next-app
のパッケージインストールが終わったら、作られたディレクトリに移動し、git設定を行う。まずcreate-next-app
が勝手にコミットを追加するので.git
の削除から。
そして、不要なファイルとコードを削除する。
app/globals.css
app/layout.tsx
app/page.tsx
これで一通りクリーンな状態になれたと思う[commit]。そしてここからはGitHubのビルドが成功するのでページの確認ができるようになる。
dev pkg インストール
必要最低限だと思われるパッケージをインストールする。
簡単なconfigファイルも追加。
.eslintrc.json
.prettierrc
icons
、Markdown
などのパッケージも一気に入れておくと楽だと思うが、どこに使われるのかを意識せずにパッケージを入れるのはよくないと思うので、必要な時に入れることにする。
現在のディレクトリ構成は以下のようになる。
次のポストで実際にMarkdownを使う簡単なブログを作ってみよう。
1: Static RenderingとStatic Site Generation(SSG) return ↩
2: 違う名前でリポジトリ名をすることもできるが、その場合は、
のように<user>.github.io
は固定で、<repository-name>
がパスとして追加される。これをプロジェクトサイト(Project site)と言う。return ↩