Expert en résolution d'erreurs de build Turborepo

VérifiéPrudence

Diagnostique et résout les erreurs de build Turborepo, TypeScript, Vite et pnpm. Utilise des patterns courants et fournit des solutions étape par étape.

Spar Skills Guide Bot
DeveloppementIntermédiaire
08/03/2026
Claude Code
#turborepo#pnpm#monorepo#build-errors#typescript

Recommandé pour

Synthèse automatique

Ce skill analyse et résout les erreurs de build d’un monorepo Turborepo/pnpm, avec des procédures ciblées pour TypeScript, Vite, les workspaces pnpm et ESLint.

Points forts

  • Fournit un processus de diagnostic étape par étape, de la lecture des logs à la reconstruction ciblée d’un package.
  • Regroupe des correctifs concrets pour les erreurs fréquentes TypeScript, Turborepo, Vite, pnpm et ESLint.
  • Propose des commandes rapides pour vider le cache, forcer une reconstruction ou inspecter le graphe de dépendances.

Limites

  • Les exemples sont fortement liés à la stack et aux noms de packages @pf-dev du projet PF.
  • Certaines solutions sont temporaires ou destructrices, comme --no-lint, eslint-disable ou la suppression de node_modules.
  • Le skill cible les erreurs de build, pas les bugs d’exécution ni les problèmes de déploiement.
Quand l'utiliser

À utiliser lorsqu’un build pnpm/Turborepo échoue à cause de TypeScript, Vite, des workspaces pnpm, d’ESLint ou du cache.

Quand l'éviter

À ne pas utiliser pour diagnostiquer des bugs runtime, des échecs de déploiement ou des projets qui n’utilisent ni pnpm ni Turborepo.

Analyse de sécurité

Prudence
Score qualité82/100

The skill is a build-troubleshooting guide whose concrete actions are package-manager and cache commands. The only risky elements are `rm -rf` scoped to node_modules/turbo cache and registry installs, both standard and recoverable, so this is 'caution' rather than 'risky'. No data exfiltration, secrets access, or obfuscation is present.

Points d'attention
  • •Instructions direct the agent to run shell commands via Bash, including destructive cleanup: `rm -rf node_modules/.cache/turbo` and `rm -rf node_modules` (the latter chained with `pnpm install && pnpm build` as a 'last resort' full reset).
  • •`pnpm install` triggers network/registry fetches and can install or update dependencies (supply-chain surface).
  • •All commands are scoped to the project working directory; no absolute-path deletions, no `curl | sh`, no credential/token access, no obfuscated payloads, no attempts to disable agent safety.
Comment cette analyse est faite

Exemples

TypeScript 모듈 오류
pnpm build에서 TS2307: Cannot find module '@pf-dev/ui' 에러가 나요. 원인 확인하고 해결해줘.
Turborepo 캐시 오류
turbo build가 'could not find output "dist" in cache'로 실패합니다. 캐시 정리하고 다시 빌드해줘.
pnpm workspace catalog 오류
pnpm-workspace.yaml catalog 관련 ERR_PNPM_SPEC_NOT_SUPPORTED_BY_ANY_RESOLVER 에러를 고쳐줘.

name: pf-build-fix description: Turborepo 빌드 에러 해결. "빌드 에러", "build 실패", "turbo 에러" 요청 시 사용. allowed-tools: Read, Bash, Glob, Grep

PF 빌드 에러 해결 전문가

$ARGUMENTS 빌드 에러를 분석하고 해결합니다.


진단 프로세스

1단계: 에러 유형 파악

# 전체 빌드 로그 확인
pnpm build 2>&1 | head -100

# 특정 패키지만 빌드
pnpm --filter @pf-dev/ui build

2단계: 일반적인 에러 패턴


🔴 TypeScript 에러

타입 불일치

error TS2322: Type 'string' is not assignable to type 'number'

해결:

  1. 해당 파일의 타입 정의 확인
  2. Props 인터페이스와 실제 사용 비교
  3. tsconfig.json의 strict 설정 확인

모듈 찾을 수 없음

error TS2307: Cannot find module '@pf-dev/ui' or its corresponding type declarations

해결:

# 1. 의존성 재설치
pnpm install

# 2. 패키지 빌드 순서 확인
pnpm --filter @pf-dev/ui build

# 3. tsconfig의 paths 확인
cat tsconfig.json | grep -A 10 "paths"

noUncheckedIndexedAccess 에러

error TS18048: 'items[0]' is possibly 'undefined'

해결:

// ❌ 에러
const first = items[0];
first.name;

// ✅ 해결
const first = items[0];
if (first) {
  first.name;
}

// 또는
const first = items.at(0);

🔴 Turborepo 에러

캐시 문제

error: could not find output "dist" in cache

해결:

# 캐시 삭제
pnpm clean

# 또는
rm -rf node_modules/.cache/turbo

의존성 순서 문제

@pf-dev/ui:build: error: Cannot find module '@pf-dev/api'

해결:

// turbo.json
{
  "tasks": {
    "build": {
      "dependsOn": ["^build"]  // 의존 패키지 먼저 빌드
    }
  }
}

순환 의존성

Circular dependency detected

해결:

  1. pnpm why 패키지명으로 의존성 트리 확인
  2. 공통 타입을 별도 패키지로 분리
  3. 인터페이스와 구현 분리

🔴 Vite 에러

환경변수 누락

Uncaught ReferenceError: process is not defined

해결:

// vite.config.ts
export default defineConfig({
  define: {
    'process.env': {}
  }
});

외부 패키지 번들링 문제

[vite]: Rollup failed to resolve import "cesium"

해결:

// vite.config.ts
export default defineConfig({
  optimizeDeps: {
    include: ['cesium']
  },
  build: {
    commonjsOptions: {
      include: [/cesium/, /node_modules/]
    }
  }
});

🔴 pnpm/workspace 에러

catalog 버전 불일치

ERR_PNPM_SPEC_NOT_SUPPORTED_BY_ANY_RESOLVER  catalog: is not supported

해결:

# pnpm-workspace.yaml에 catalog 정의 확인
catalog:
  react: ^19.2.0

피어 의존성 경고

WARN  Issues with peer dependencies found

해결:

# .npmrc에 추가
auto-install-peers=true
strict-peer-dependencies=false

🔴 ESLint 에러

빌드 시 린트 에러로 실패

error  Unexpected any. Specify a different type  @typescript-eslint/no-explicit-any

해결 옵션:

# 1. 린트 무시하고 빌드 (임시)
pnpm build --no-lint

# 2. 해당 파일 수정
# 3. eslint-disable 주석 (최후의 수단)
// eslint-disable-next-line @typescript-eslint/no-explicit-any

빠른 해결 명령어

# 전체 초기화 (최후의 수단)
pnpm clean && rm -rf node_modules && pnpm install && pnpm build

# 특정 패키지만 재빌드
pnpm --filter @pf-dev/ui build --force

# 의존성 그래프 확인
pnpm turbo run build --graph

# 캐시 없이 빌드
pnpm turbo run build --force

에러 보고 시 포함할 정보

  1. 전체 에러 메시지
  2. 어떤 패키지/앱에서 발생했는지
  3. 최근 변경사항
  4. pnpm -v, node -v 버전

Du fichier au premier essai

Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.

Consulter la source et ses fichiers annexes

Ce téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.

1. Télécharger le fichier

Télécharger SKILL.md

Depuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/turborepo-build-error-resolution-expert-mmh8qqzd/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.

Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.

mkdir -p '.skill-downloads/turborepo-build-error-resolution-expert-mmh8qqzd' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/turborepo-build-error-resolution-expert-mmh8qqzd/download' --output '.skill-downloads/turborepo-build-error-resolution-expert-mmh8qqzd/SKILL.md.part' && mv '.skill-downloads/turborepo-build-error-resolution-expert-mmh8qqzd/SKILL.md.part' '.skill-downloads/turborepo-build-error-resolution-expert-mmh8qqzd/SKILL.md'

2. Vérifier les prérequis

Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.

Outils déclarés par l’auteur (à vérifier dans votre agent) : Read, Bash, Glob, Grep

Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.

Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.

3. Charger la skill

Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.

Claude Code
test -f '.skill-downloads/turborepo-build-error-resolution-expert-mmh8qqzd/SKILL.md' && test -s '.skill-downloads/turborepo-build-error-resolution-expert-mmh8qqzd/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/pf-build-fix' && cp -R '.skill-downloads/turborepo-build-error-resolution-expert-mmh8qqzd' '.claude/skills/pf-build-fix'

OpenSkills

OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.

Installation officielle d’OpenSkills
openskills install './.skill-downloads/turborepo-build-error-resolution-expert-mmh8qqzd'

openskills read 'turborepo-build-error-resolution-expert-mmh8qqzd'

La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.

Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.

openskills sync

Mode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.

4. Faire un premier essai

Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :

Lis .skill-downloads/turborepo-build-error-resolution-expert-mmh8qqzd/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.

Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.

Skills similaires