トラブルシューティング
一般的な問題とその解決方法 - すぐに問題を解決
トラブルシューティング
困っていますか?このガイドでは、一般的な問題とその解決方法をカバーしています。
問題が見つかりませんか? GitHub Issuesを検索するか、Discussionsで質問してください。
インストールの問題
pnpm install後に「Module not found」
症状:インポートエラー、TypeScriptがモジュールを見つけられない
解決策:
# すべてをクリアして再インストール
rm -rf node_modules .next pnpm-lock.yaml
pnpm install
# 開発サーバーを再起動
pnpm dev「pnpm not found」
解決策:pnpmをグローバルにインストール
npm install -g pnpm
# またはCorepackを使用(推奨)
corepack enable
corepack prepare pnpm@latest --activate「Node version too old」
症状:構文エラーでビルドが失敗
解決策:Node.js 24.18.0 LTSにアップグレード
# 現在のバージョンを確認
node -v
# 最新のLTSをインストール(nvmを使用)
nvm install --lts
nvm use --ltsデータベースの問題
「Database connection failed」
これらを確認:
-
PG_DATABASE_URLは設定されていますか?
echo $PG_DATABASE_URL # 表示されるべき: postgresql://... -
フォーマットは正しいですか?
# 正しいフォーマット: postgresql://user:password@host:5432/database -
手動で接続できますか?
psql $PG_DATABASE_URL
解決策:
.envファイルが存在し、正しい変数が含まれていることを確認- データベースサーバーが実行中であることを確認
- ファイアウォールがポート5432をブロックしていないことを確認
「Relation does not exist」
症状:クエリ時に「relation "users" does not exist」
解決策:マイグレーションを実行
pnpm db:push「Column does not exist」
症状:「column "email" does not exist」
解決策:
- スキーマを更新:
src/db/schema/ - データベースにプッシュ:
pnpm db:push - サーバーを再起動
認証の問題
セッションが持続しない
症状:ログイン後、リフレッシュでログアウト
解決策:
-
BETTER_AUTH_SECRETが.envに設定されていることを確認# 生成: openssl rand -base64 32 -
開発では
localhostを使用(127.0.0.1ではなく) -
Cookieが設定されていることを確認(DevToolsをチェック)
OAuthリダイレクトが機能しない
症状:GitHub/Googleログイン後に404
解決策:
-
OAuthプロバイダーのコールバックURLを確認
http://localhost:3000/api/auth/callback/github -
.envに正しいクライアントID/シークレットがあることを確認 -
サーバーを再起動
「Invalid credentials」
症状:正しいパスワードでもログインできない
解決策:
- メールアドレスが正しいことを確認(大文字小文字を区別)
- データベースでユーザーが存在することを確認
- パスワードハッシュが保存されていることを確認
ビルドの問題
「Type error」during build
症状:pnpm buildがTypeScriptエラーで失敗
解決策:
-
型を生成:
pnpm db:generate pnpm i18n:typegen -
TypeScriptサーバーを再起動(VSCode)
-
開発で型チェック:
pnpm typecheck
「Module not found」during build
解決策:
# 依存関係を再インストール
rm -rf node_modules .next
pnpm install
pnpm build「Out of memory」
症状:ビルド時にメモリ不足
解決策:
# Node.jsのメモリを増やす
export NODE_OPTIONS="--max-old-space-size=4096"
pnpm build開発サーバーの問題
「Port 3000 already in use」
解決策:
# ポートを使用しているプロセスを見つける
lsof -i :3000
# プロセスを強制終了
kill -9 <PID>
# または別のポートを使用
pnpm dev -- -p 3001ホットリロードが機能しない
症状:ファイルを変更してもページが更新されない
解決策:
-
.nextフォルダを削除:rm -rf .next pnpm dev -
ファイルウォッチャーの制限を増やす(Linux):
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf sudo sysctl -p
変更が遅い
症状:ファイル保存後、更新に時間がかかる
解決策:
node_modulesをウイルススキャナーから除外- Docker使用時は、コードをコンテナ内にコピー(マウントしない)
- WSL2を使用(Windowsの場合)
tRPCの問題
「tRPC error: Unauthorized」
症状:保護されたルートが401を返す
解決策:
- ログインしていることを確認
- セッションCookieが設定されていることを確認
- tRPCクライアントが正しく設定されていることを確認
「Query key not found」
症状:React Queryエラー
解決策:
src/server/index.tsでルーターがエクスポートされていることを確認- サーバーを再起動
- ブラウザキャッシュをクリア
Vercelデプロイの問題
「Build failed」on Vercel
解決策:
- ログでエラーを確認
- すべての環境変数が設定されていることを確認
- ローカルで
pnpm buildを実行してテスト
「Database connection timeout」
症状:デプロイ後、データベース接続エラー
解決策:
-
データベースがVercelからアクセス可能であることを確認
-
接続プールを設定:
// drizzle.config.ts pool: { min: 2, max: 10, } -
データベースプロバイダーのファイアウォール設定を確認
パフォーマンスの問題
ページ読み込みが遅い
診断:
# 本番ビルドでテスト
pnpm build
pnpm start解決策:
-
画像を最適化(Next.js Imageを使用)
-
バンドルサイズを確認:
pnpm build --analyze -
不要なインポートを削除
データベースクエリが遅い
解決策:
-
インデックスを追加:
// schema index("user_email_idx").on(users.email) -
EXPLAIN ANALYZEでクエリを分析 -
N+1クエリを避ける(データローダーを使用)
よくある質問
デモモードを無効にするには?
解決策:
// lib/demo.ts
export const isDemoMode = () => false;データベースをリセットするには?
警告:すべてのデータが削除されます!
pnpm db:push --force
pnpm db:seedStripeテストモードから本番に切り替えるには?
解決策:
-
Stripeダッシュボードで本番キーを取得
-
.envを更新:STRIPE_SECRET_KEY=sk_live_... STRIPE_PUBLISHABLE_KEY=pk_live_... -
Webhookエンドポイントを更新
それでも問題が解決しない場合
コミュニティに助けを求める
デバッグ情報を提供
問題を報告する際は、以下を含めてください:
- ✅ エラーメッセージ(完全なスタックトレース)
- ✅ 再現手順
- ✅ Node.js、pnpm、OSバージョン
- ✅ 関連する設定ファイル
予防のヒント
開発のベストプラクティス
- ✅ 定期的に更新:
pnpm update - ✅ 依存関係を最小限に:本当に必要なものだけをインストール
- ✅ 環境変数を使用:シークレットをコードにハードコードしない
- ✅ 型チェック:コミット前に
pnpm typecheck - ✅ 頻繁にテスト:早期に問題をキャッチ
次のステップ
問題を解決したら:
このガイドが役に立ちましたか? フィードバックを共有したり、改善を提案したりしてください! 💪