Skip to content

Commit c9e3e6e

Browse files
authored
⚡ Optimize Turborepo configuration and improve documentation (#836)
* ⚡ Refactor and optimize turbo.json configuration - Remove redundant generic task definitions for better clarity - Streamline api#generate to focus on Supabase files with proper scope - Add build dependency for pages#test to ensure correct execution order - Configure comprehensive lint/format inputs covering: - Source files and configuration files (*.config.*, *.json) - Static assets (public/**) and test files (tests/**) - Custom scripts (commands/**) - Remove README.md exclusion to enable proper spell checking and formatting - Add exclusions for generated/build artifacts to optimize cache performance * 📚 Improve README.md command documentation - Reorganize development commands by workflow phases - Clarify which commands work at root level vs package-specific - Add port numbers for development servers - Group commands logically: servers, build/generate, quality assurance, formatting - Align documentation with actual turbo.json task configuration
1 parent acb708c commit c9e3e6e

2 files changed

Lines changed: 69 additions & 61 deletions

File tree

README.md

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -123,15 +123,29 @@ After running `pnpm install`, a `.env` file is automatically created from `.env.
123123

124124
```bash
125125
# Project Setup
126-
pnpm install # Install dependencies (.env file is created automatically)
127-
128-
# Development
129-
pnpm dev # Start all apps in development mode
130-
pnpm generate # Generate Supabase TypeScript types
131-
pnpm build # Build all applications
132-
pnpm lint # Run linting across all apps
133-
pnpm test # Run tests across all apps
134-
pnpm format # Format code with Prettier
126+
pnpm install # Install dependencies (.env file is created automatically)
127+
128+
# Development Workflow
129+
130+
# Start development servers
131+
pnpm --filter api start # Start Supabase API (port 54321)
132+
pnpm dev # Start all development servers
133+
# Or specific apps:
134+
pnpm --filter web dev # Start web app only (port 5173)
135+
pnpm --filter pages dev # Start static site only (port 3000)
136+
137+
# Build and generate
138+
pnpm --filter api generate # Generate TypeScript types from Supabase
139+
pnpm --filter web build # Build web application
140+
pnpm --filter pages build # Build static site
141+
142+
# Quality assurance
143+
pnpm lint # Run linting across all apps
144+
pnpm --filter web test # Test web app
145+
pnpm --filter pages test # Test static site
146+
147+
# Code formatting
148+
pnpm format # Format code across all apps
135149
```
136150

137151
### App-Specific Commands

turbo.json

Lines changed: 46 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -2,64 +2,14 @@
22
"$schema": "https://turbo.build/schema.json",
33
"globalDependencies": [".env"],
44
"tasks": {
5-
"generate": {
6-
"dependsOn": ["^generate"],
7-
"inputs": ["$TURBO_DEFAULT$", "supabase/**", "scripts/**"],
8-
"outputs": ["$generated/**"]
9-
},
10-
"build": {
11-
"dependsOn": ["^build"],
12-
"inputs": ["$TURBO_DEFAULT$", "!README.md", "!**/*.test.*", "!**/*.spec.*"],
13-
"outputs": ["dist/**", "build/**", ".svelte-kit/**", ".vercel/**", "public/styles.css"]
14-
},
15-
"dev": {
16-
"cache": false,
17-
"persistent": true,
18-
"dependsOn": ["generate"]
19-
},
20-
"test": {
21-
"dependsOn": ["^build"],
22-
"inputs": ["$TURBO_DEFAULT$", "!README.md", "!**/coverage/**"],
23-
"outputs": ["coverage/**"]
24-
},
25-
"lint": {
26-
"inputs": ["$TURBO_DEFAULT$", "!README.md", "!**/coverage/**", "!**/dist/**", "!**/build/**"]
27-
},
28-
"format": {
29-
"inputs": ["$TURBO_DEFAULT$", "!README.md", "!**/coverage/**", "!**/dist/**", "!**/build/**"]
30-
},
31-
"preview": {
32-
"dependsOn": ["build"],
33-
"cache": false,
34-
"persistent": true
35-
},
36-
"test:watch": {
37-
"cache": false,
38-
"persistent": true,
39-
"interactive": true
40-
},
415
"api#generate": {
42-
"inputs": ["supabase/**", "$TURBO_DEFAULT$"],
43-
"outputs": ["$generated/**"]
44-
},
45-
"api#generate:supabase-types": {
46-
"inputs": ["supabase/**"],
47-
"outputs": ["$generated/types.ts"],
48-
"env": ["DATABASE_URL", "SUPABASE_SERVICE_ROLE_KEY"]
6+
"inputs": ["$TURBO_DEFAULT$", "supabase/**"],
7+
"outputs": ["$generated/types.ts"]
498
},
509
"pages#build": {
5110
"inputs": ["$TURBO_DEFAULT$", "app.css", "public/**", "!public/styles.css"],
5211
"outputs": ["public/styles.css"]
5312
},
54-
"pages#test": {
55-
"dependsOn": ["pages#build"],
56-
"inputs": ["public/**", "tests/**", "commands/**"],
57-
"outputs": ["tests/external-links.txt"]
58-
},
59-
"pages#deploy": {
60-
"dependsOn": ["pages#build"],
61-
"cache": false
62-
},
6313
"web#build": {
6414
"dependsOn": ["@repo/shared#build"],
6515
"inputs": ["$TURBO_DEFAULT$", "!README.md", "!**/*.test.*", "!**/*.spec.*"],
@@ -69,6 +19,50 @@
6919
"@repo/shared#build": {
7020
"inputs": ["$TURBO_DEFAULT$", "!README.md", "!**/*.test.*", "!**/*.spec.*"],
7121
"outputs": [".svelte-kit/**", "dist/**"]
22+
},
23+
"dev": {
24+
"cache": false,
25+
"persistent": true
26+
},
27+
"api#test": {
28+
"cache": false
29+
},
30+
"pages#test": {
31+
"dependsOn": ["build"],
32+
"inputs": ["public/**", "tests/**", "commands/**"],
33+
"outputs": ["tests/external-links.txt"]
34+
},
35+
"lint": {
36+
"inputs": [
37+
"$TURBO_DEFAULT$",
38+
"*.{json,js,ts,config.*}",
39+
"public/**",
40+
"tests/**",
41+
"commands/**",
42+
"!**/*.test.*",
43+
"!**/*.spec.*",
44+
"!**/dist/**",
45+
"!**/build/**",
46+
"!**/.svelte-kit/**",
47+
"!**/.vercel/**",
48+
"!**/$generated/**"
49+
]
50+
},
51+
"format": {
52+
"inputs": [
53+
"$TURBO_DEFAULT$",
54+
"*.{json,js,ts,config.*}",
55+
"public/**",
56+
"tests/**",
57+
"commands/**",
58+
"!**/*.test.*",
59+
"!**/*.spec.*",
60+
"!**/dist/**",
61+
"!**/build/**",
62+
"!**/.svelte-kit/**",
63+
"!**/.vercel/**",
64+
"!**/$generated/**"
65+
]
7266
}
7367
}
7468
}

0 commit comments

Comments
 (0)