はじめに
Next.jsの知識を深めるために、Todoアプリを作ることにしました。その際の環境構築の方法を記しておきます。何か間違っていることなどございましたらコメントいただけますと、とても喜びます。
- Next.js:v14.0.4
- prisma/client:v5.8.1
- typescript: v5
1.Next.jsプロジェクトのセットアップ
コマンド実行
プロジェクトを作りたい場所に移動して、下記のコマンドをターミナルで実行することで、最新のNext.jsのプロジェクトをセットアップできる。
npx create-next-app@latest
プロジェクトの名前を入力する。下記はnext-todoというプロジェクト名。
? What is your project named? >> next-todo
そのあと色々聞かれるが私みたいによく分かんない人は全部エンターキーでもOK。
ローカルでアクセス
作ったプロジェクトに移動し、npm run dev
でローカルサーバを立ち上げる。
npm run dev
おそらくhttp://localhost:3000
にアクセスし、下記のようにブラウザで表示されていればNext.jsのセットアップは完了。確認したら、Ctrl + C
で閉じる。
2.GitHubのリポジトリ作成
リモートリポジトリ作成
Vercel
はGitHub
のリポジトリと結び付けることができるため、リポジトリを作成しておく。
お好きなプロジェクト名を入力して、右下のCreate repositoryをクリック。
ローカルとリモートを結びつける
作ったフォルダで下記のコマンドを実行。ユーザー名は自分のGitHubの名前に書き換えてね。
echo "# next-todo-app" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin git@github.com:ユーザー名/next-todo.git
git push -u origin main
リモートリポジトリの作成完了。
3.Vercelにプロジェクトを追加
アクセス
下記からVercelにアクセスし、アカウントがない場合は作成する。
プロジェクトの追加
アカウントを作成できたら、自分のダッシュボードにアクセスし、Add New
ボタンをクリックし、Project
をクリックする。
作成したGitHubのリポジトリが出てくるので、Import
ボタンをクリックする。
プロジェクトのデプロイ
Vercel Postgresを使う際にデプロイしていないとなんかうまくいかなかったので、Deploy
ボタンをクリックする。
Congratulaitons!とでたら成功!やった!Continue to Dashboard
をクリックする。
4.Vercel Postgresのセットアップ
データベースの作成
先ほどデプロイしたプロジェクトのダッシュボードにアクセスしていると思うので、上のタブからStorage
をクリックする。そして、Postgres
のCreate
をクリックする。
データベース名を入力し、地域を選んでCreate & Continue
をクリックする。地域はシンガポールを選択したが、最良なのかは知らない。
そしたら多分プロジェクトとデータベースが繋がる。
繋がっているか確認
プロジェクトのダッシュボードで上のタブからStorage
をクリックする。下の画像のようにデータベースが表示されていればおそらく繋がっている。
5.Prismaのセットアップ
コマンド実行
下記のコマンドをターミナルで実行する。
Prisma CLI を開発依存関係としてプロジェクトにインストールします。
npm install prisma --save-dev
次に、次のコマンドを使用してPrisma スキーマファイルを作成し、Prisma プロジェクトをセットアップします。
npx prisma init
あとで使うことになるので今のうちにインストールしておこう。
npm i @prisma/client
全部実行したらプロジェクトをお好きなエディタで開いて、ルートディレクトリにprisma/schema.prisma
が作成されていることを確認する。
.envファイル編集
プロジェクトのダッシュボードに戻り、Storage
クリック、作ったデータベースクリック、.env.local
というタブに環境変数がいっぱい書いてあるのでコピーする。
ルートディレクトリに.env
という名前のファイルがあると思うのでそこに先ほどコピーした環境変数を貼り付ける。
注意!.envファイルに環境変数を貼り付けた後、.gitignore
ファイルに.env
という記載を忘れないように!筆者は忘れててGitHubからメールで怒られました。
.envファイルをGitHubに上げた場合
おそらく下記のコマンドで.env
をGitの管理から外せるはず。
git rm -r --cached .env
git commit -m"ignore .env file"
git push
schema.prismaを編集
schema.prisma
を開き下記のようにコードを修正する。
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "postgresql"
url = env("POSTGRES_PRISMA_URL")
directUrl = env("POSTGRES_URL_NON_POOLING")
shadowDatabaseUrl = env("POSTGRES_URL_NON_POOLING")
}
provider: データベースプロバイダとしてPostgreSQLを使用することを指定しています。
url: データベース接続用のURLです。
directUrl: 直接データベースを接続する際に使用するURLです。
shadowDatabaseUrl: マイグレーション用のシャドウデータベースのURLです。本番データベースに影響を与えることなく、マイグレーションを実行できます。
おわりに
ここまで読んでいただきありがとうございます。無事にセットアップができたでしょうか?次の記事からTodoアプリのコーディングに入っていきます。
参考にさせていただいた記事