Files
shadcn-ui__ui/turbo.json
T
shadcn dd679a6e25 chore(v4): stop tracking generated styles (#11190)
* chore(v4): stop tracking generated styles

Phase 2 of generated-output untracking (follows #11189). The compiled
style sources under apps/v4/styles (base-*/radix-*, ~1,080 files) are
produced by registry:build (copyUIToStyles + RTL) on every deploy, so
the committed copies were redundant. Only styles/README.md stays
tracked.

Unlike public/r/styles, these are imported modules, so:

- code-check.yml: the typecheck job now runs
  `registry:build --style all` (the fast targeted build) after
  installing Bun, since v4 typecheck imports @/styles/*.
- next.config.mjs: fail fast in dev with the regeneration command when
  the styles are missing, instead of a module-not-found cascade.
- .prettierignore: skip styles/ — targeted builds intentionally skip
  prettier on generated output.
- turbo.json: declare public/r/styles/** and styles/** as build
  outputs so a turbo cache replay of v4#build restores them (also
  fixes a latent phase-1 gap where a cache hit could deploy without
  registry JSON).

Fresh clones: run `pnpm --filter=v4 registry:build --style all` once
(~50s) before next dev; see styles/README.md.

* docs: document untracked generated styles in CONTRIBUTING

* fix(v4): register gitignored styles as tailwind sources

Tailwind v4's source detection skips gitignored files, so untracking
styles/ dropped every utility class that only appears in the generated
output — progress bars collapsed (h-1), radio indicators and bubble
radii lost their styles.

An explicit @source glob only overrides .gitignore when the path
through the ignored level is literal: ../styles/**/*.tsx gets pruned
at the ignored directory, while ../styles/base-nova/**/*.tsx is
scanned. Register each generated style explicitly. When adding a new
style, add a line here.

Verified byte-identical CSS output against an unrestricted scan.
2026-07-16 12:02:36 +04:00

67 lines
1.3 KiB
JSON

{
"$schema": "https://turbo.build/schema.json",
"globalEnv": ["NODE_ENV"],
"tasks": {
"build": {
"dependsOn": ["^build"],
"env": [
"NEXT_PUBLIC_APP_URL",
"UPSTASH_REDIS_REST_URL",
"UPSTASH_REDIS_REST_TOKEN",
"COMPONENTS_REGISTRY_URL",
"REGISTRY_URL",
"npm_config_user_agent",
"https_proxy",
"V0_URL",
"V0_EDIT_SECRET",
"DEPLOYMENT_PROTECTION_BYPASS"
],
"outputs": [
"dist/**",
".next/**",
"!.next/cache/**",
"public/r/styles/**",
"styles/**"
]
},
"preview": {
"env": ["NEXT_PUBLIC_APP_URL"],
"outputs": ["dist/**", ".next/**"]
},
"start": {
"dependsOn": ["^build"]
},
"lint": {
"cache": false,
"outputs": []
},
"lint:fix": {
"cache": false,
"outputs": []
},
"format:check": {
"cache": false,
"outputs": []
},
"format:write": {
"outputs": []
},
"typecheck": {},
"dev": {
"cache": false,
"persistent": true
},
"check": {
"cache": false
},
"test": {
"dependsOn": ["^build"],
"cache": false,
"outputs": []
},
"registry:build": {
"outputs": []
}
}
}