turbo.json
Rama main · réplica de lectura del repositorio original.
{
"$schema": "https://turbo.build/schema.json",
"globalDependencies": [".env.*local"],
"tasks": {
"lint": {
"dependsOn": ["^lint"]
},
"dev": {
"dependsOn": ["^prisma:generate"],
"inputs": ["$TURBO_DEFAULT$", ".env"],
"cache": false
},
"build:tracker": {
"dependsOn": [],
"outputs": ["packages/tinybird/dist/tracker.js"]
},
"copy-tinybird-tracker": {
"dependsOn": ["^build:tracker"],
"outputs": ["apps/frontend/public/assets/tinybird/tracker.js"]
},
"build:frontend": {
"dependsOn": ["^prisma:generate", "^copy-tinybird-tracker"],
"env": [
"DATABASE_URL",
"DIRECT_URL",
"NEXT_PUBLIC_SENTRY_DSN",
"SENTRY_AUTH_TOKEN",
"ENCRYPTION_KEY",
"GITHUB_AUTH_TOKEN",
"INTERNAL_API_KEY",
"NEXT_PUBLIC_APP_ENV",
"NEXT_PUBLIC_BASE_URL",
"NEXT_PUBLIC_ROOT_DOMAIN",
"NEXT_PUBLIC_API_URL",
"NEXT_PUBLIC_APP_URL",
"NEXT_PUBLIC_GOOGLE_MAPS_API_KEY",
"NEXT_PUBLIC_MAPBOX_ACCESS_TOKEN",
"NEXT_PUBLIC_TINYBIRD_TRACKER_TOKEN",
"NEXT_PUBLIC_POSTHOG_KEY",
"NEXT_PUBLIC_MARKETING_URL",
"NEXT_PUBLIC_GOOGLE_SITE_VERIFICATION",
"SPOTIFY_CLIENT_ID",
"SPOTIFY_CLIENT_SECRET",
"VERCEL_UNDICI"
],
"inputs": ["$TURBO_DEFAULT$", ".env"],
"outputs": ["dist/**", ".next/**", "!.next/cache/**"]
},
"build:marketing": {
"dependsOn": ["^prisma:generate"],
"env": [
"NEXT_PUBLIC_API_URL",
"NEXT_PUBLIC_APP_URL",
"NEXT_PUBLIC_BASE_URL",
"NEXT_PUBLIC_GOOGLE_SITE_VERIFICATION",
"BLOG_CONTENT_DIR",
"BLOG_CONTENT_REPO",
"BLOG_CONTENT_TOKEN",
"VERCEL_ENV"
],
// Blog posts are cloned from a separate repo during the build, so turbo
// can't tell when they change. Always rebuild.
"cache": false,
"inputs": ["$TURBO_DEFAULT$", ".env"],
"outputs": ["dist/**", ".next/**", "!.next/cache/**"]
},
"build:api": {
"env": [
"API_BASE_URL",
"APP_ENV",
"APP_FRONTEND_URL",
"AUTH_GOOGLE_CLIENT_ID",
"AUTH_GOOGLE_CLIENT_SECRET",
"AUTH_SECRET",
"AUTH_TIKTOK_CLIENT_ID",
"AUTH_TIKTOK_CLIENT_KEY",
"AUTH_TIKTOK_CLIENT_SECRET",
"AUTH_TRUST_HOST",
"AUTH_TWITTER_CLIENT_ID",
"AUTH_TWITTER_CLIENT_SECRET",
"AWS_ACCESS_KEY_ID",
"AWS_REGION",
"AWS_SECRET_ACCESS_KEY",
"BETTER_AUTH_URL",
"ENCRYPTION_KEY",
"INSTAGRAM_CALLBACK_URL",
"INSTAGRAM_CLIENT_ID",
"INSTAGRAM_CLIENT_SECRET",
"INSTAGRAM_LEGACY_CALLBACK_URL",
"INSTAGRAM_LEGACY_CLIENT_ID",
"INSTAGRAM_LEGACY_CLIENT_SECRET",
"INTERNAL_API_KEY",
"NODE_ENV",
"PORT",
"POSTHOG_API_KEY",
"REACTIONS_TABLE_NAME",
"RESEND_API_KEY",
"RESEND_AUDIENCE_ID",
"SCREENSHOT_API_KEY",
"SENTRY_AUTH_TOKEN",
"SENTRY_DSN",
"SLACK_TOKEN",
"SPOTIFY_CLIENT_ID",
"SPOTIFY_CLIENT_SECRET",
"SPOTIFY_REDIRECT_URL",
"STRIPE_API_SECRET_KEY",
"STRIPE_WEBHOOK_SECRET",
"THREADS_CALLBACK_URL",
"THREADS_CLIENT_ID",
"THREADS_CLIENT_SECRET",
"TIKTOK_CALLBACK_URL",
"TIKTOK_CLIENT_KEY",
"TIKTOK_CLIENT_SECRET",
"TINYBIRD_API_KEY"
],
"inputs": ["$TURBO_DEFAULT$", ".env"]
},
"start:frontend": {
"dependsOn": ["build:frontend"],
"inputs": ["$TURBO_DEFAULT$", ".env"]
},
"start:marketing": {
"dependsOn": ["build:marketing"],
"inputs": ["$TURBO_DEFAULT$", ".env"]
},
"start:api": {
"dependsOn": ["build:api"],
"env": [
"AUTH_GOOGLE_CLIENT_ID",
"AUTH_GOOGLE_CLIENT_SECRET",
"AUTH_TWITTER_CLIENT_ID",
"AUTH_TWITTER_CLIENT_SECRET",
"AUTH_TIKTOK_CLIENT_ID",
"AUTH_TIKTOK_CLIENT_KEY",
"AUTH_TIKTOK_CLIENT_SECRET",
"DATABASE_URL",
"DIRECT_URL",
"AUTH_SECRET",
"NODE_ENV",
"AUTH_TRUST_HOST",
"API_BASE_URL",
"AWS_ACCESS_KEY_ID",
"AWS_SECRET_ACCESS_KEY",
"AWS_REGION",
"REACTIONS_TABLE_NAME",
"POSTHOG_API_KEY",
"STRIPE_API_SECRET_KEY",
"RESEND_API_KEY",
"RESEND_AUDIENCE_ID",
"STRIPE_WEBHOOK_SECRET",
"BETTER_AUTH_URL",
"INTERNAL_API_KEY",
"APP_ENV",
"ENCRYPTION_KEY",
"APP_FRONTEND_URL",
"INSTAGRAM_CALLBACK_URL",
"INSTAGRAM_CLIENT_ID",
"INSTAGRAM_CLIENT_SECRET",
"INSTAGRAM_LEGACY_CALLBACK_URL",
"INSTAGRAM_LEGACY_CLIENT_ID",
"INSTAGRAM_LEGACY_CLIENT_SECRET",
"SPOTIFY_CLIENT_ID",
"SPOTIFY_CLIENT_SECRET",
"SPOTIFY_REDIRECT_URL",
"THREADS_CALLBACK_URL",
"THREADS_CLIENT_ID",
"THREADS_CLIENT_SECRET",
"TIKTOK_CALLBACK_URL",
"TIKTOK_CLIENT_KEY",
"TIKTOK_CLIENT_SECRET",
"TINYBIRD_API_KEY",
"SCREENSHOT_API_KEY",
"SLACK_TOKEN"
],
"inputs": ["$TURBO_DEFAULT$", ".env"]
},
"prisma:generate": {
"cache": false,
"env": ["DATABASE_URL", "DIRECT_URL"]
},
"migrate": {
"cache": false,
"env": ["DIRECT_URL"]
},
"build": {
"dependsOn": ["^build"],
"outputs": ["dist/**"]
},
"typecheck": {
"dependsOn": ["^prisma:generate"],
"outputs": []
},
"test": {
"dependsOn": ["^prisma:generate"],
// apps/api has DB-backed integration tests. Turbo's strict env mode
// withholds anything not declared here, so without these the suite
// silently falls back to whatever .env.local points at.
"env": ["DATABASE_URL", "DIRECT_URL"],
"outputs": []
}
}
}