MeWrite Docs

Turborepo: Cache miss

Turborepoでキャッシュが効かない場合の原因と解決策

概要

Turborepoでビルドキャッシュが効かず、毎回フルビルドになる問題です。

エラーメッセージ

``` web:build: cache miss, executing ```

原因

  1. inputsの設定漏れ: キャッシュキーに含まれるファイルが変更
  2. 環境変数の変更: envに含まれる変数が異なる
  3. outputsの不一致: ビルド出力先の設定ミス
  4. 依存関係の変更: package.jsonの更新

解決策

1. turbo.jsonの設定を確認

```json // turbo.json { “$schema”: “https://turbo.build/schema.json", “globalDependencies”: [".env”], “pipeline”: { “build”: { “dependsOn”: ["^build"], “outputs”: [“dist/”, “.next/”], “inputs”: [ “src/”, “package.json”, “tsconfig.json” ] }, “test”: { “dependsOn”: [“build”], “outputs”: [“coverage/”], “cache”: true }, “dev”: { “cache”: false, “persistent”: true } } } ```

2. 環境変数を適切に設定

```json // turbo.json { “pipeline”: { “build”: { “env”: [“NODE_ENV”, “API_URL”], “passThroughEnv”: [“CI”, “VERCEL”] } }, “globalEnv”: [“GITHUB_TOKEN”] } ```

3. キャッシュ状態を確認

```bash

ドライラン(キャッシュ状態のみ確認)

turbo run build –dry-run

キャッシュの詳細

turbo run build –summarize

キャッシュをクリア

turbo run build –force ```

4. リモートキャッシュを設定

```bash

Vercel Remote Cache

npx turbo login npx turbo link

または .turbo/config.json

{ “teamId”: “team_xxx”, “apiUrl”: “https://vercel.com” } ```

5. .turboignoreを使用

```

.turboignore

node_modules *.log .env.local ```

よくある間違い

  • outputsにビルド成果物を含めない
  • 環境変数をenvに登録しない
  • 依存パッケージの変更を見落とす

関連エラー

関連エラー

最終更新: 2025-12-11