Zum Hauptinhalt springen

Local Development

Voraussetzungen

  • Node.js 24+ (im .tool-versions des Repos gepinnt)
  • Python 3.12+ (für packages/color-edit)
  • Firebase CLI 15.7.0 (ASDF_FIREBASE_VERSION=15.7.0 firebase --version)
  • gcloud authentifiziert gegen cpl-gen-ai-marketing (für ADC-basierten Vertex- / Firestore- / GCS-Zugriff)

Install

npm install

Backend

# Genkit Dev-UI mit Hot Reload (empfohlen)
npx nx dev server

# Plain Express Server auf :8080
npm start

Im Dev-Mode (NODE_ENV=development und USE_CLOUD_TASKS ungesetzt) short-circuited pipeline-core/cloud-tasks.ts die Cloud-Tasks-API und macht stattdessen direkte fetch-POSTs an die lokalen Stage Handler. Keine Cloud-Tasks-Queue und kein OIDC-Handshake nötig.

Frontend

npx nx dev frontend

Vite-Dev-Server auf :5173 mit Proxy aufs Backend :8080 (Route-Map siehe packages/frontend/vite.config.ts).

MCP Server

npx nx serve mcp-server # Express auf :8080

Für den lokalen OAuth-Flow ohne Google-Credentials einfach MCP_ALLOW_INSECURE_OIDC=1 setzen. Das gilt ausschließlich wenn NODE_ENV !== 'production'; in Production wird Insecure-Mode hart abgelehnt.

Doku-Site

npx nx dev docs

Docusaurus-Dev-Server auf :3000, Hot Reload bei .md-Saves.

Lokal builden:

npx nx build docs
npx nx serve docs # served das gebaute dist/ auf :3000

Tests

# Alles (lint + test + type-check über alle Packages)
npx nx run-many -t build lint test type-check --parallel=1

# Einzelnes Package
npx nx test pipeline-core
npx nx test mcp-server
npx nx test color-edit

Tests für pipeline-core, mcp-server und server laufen gegen den Firestore-Emulator (jeweils auf eigenem Port, um Kollisionen zu vermeiden: 8085 / 8086 / 8087). nx.json setzt das Test-Target deshalb auf parallel=false.

Praktische Env-Overrides

VariableDefaultWann
FIRESTORE_DB_ID(default)Gegen eine andere Firestore-DB sprechen
GCS_BUCKET_NAMEcpl-gen-ai-marketing-imagesEinen persönlichen Sandbox-Bucket verwenden
USE_CLOUD_TASKSunsetEchte Cloud Tasks auch im Dev erzwingen
MCP_ALLOW_INSECURE_OIDC0Google-ID-Token-Signaturcheck überspringen