Files
setlist/vite.config.ts
zooqueen f89340860e band-setlist: Setlist — public show & setlist tracker on the Hanzo stack
Gig-poster-brutalist band gig log: browse upcoming/past shows, open a show
to read its ordered setlist, and sign in to log shows + build sets.

- UI: 100% @hanzo/gui primitives (Tamagui longhand), no Tailwind
- Auth: @hanzo/iam PKCE against hanzo.id (VITE_IAM_CLIENT_ID)
- Data: @hanzo/base org-scoped shows / songs / setlist from schema.sql
- Forked from hanzo-starter; identical provider stack, vite.config, deploy contract
2026-07-21 10:39:37 -07:00

35 lines
1.3 KiB
TypeScript

import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
/**
* Hanzo starter — Vite config.
*
* @hanzo/gui is the Tamagui line: its runtime resolves styles against
* react-native-web. The IN-BROWSER builder runtime can't do this, which is
* exactly why a real-stack template ships as a real repo built here. Three
* things make @hanzo/gui compile + render under plain Vite (no Tamagui compiler,
* no `one`, no Expo — the optimizer is a perf pass, not a correctness one):
* 1. alias `react-native` -> `react-native-web` (gui imports RN primitives),
* 2. define `process.env.TAMAGUI_TARGET` / `NODE_ENV` / `__DEV__`
* (Tamagui core reads these; Vite doesn't shim `process.env` for the client),
* 3. dedupe react / react-dom / react-native-web to one copy.
*/
export default defineConfig(({ mode }) => {
const dev = mode !== 'production'
return {
plugins: [react()],
define: {
'process.env.TAMAGUI_TARGET': JSON.stringify('web'),
'process.env.NODE_ENV': JSON.stringify(dev ? 'development' : 'production'),
__DEV__: JSON.stringify(dev),
},
resolve: {
alias: { 'react-native': 'react-native-web' },
dedupe: ['react', 'react-dom', 'react-native-web'],
},
optimizeDeps: {
include: ['@hanzo/gui', '@hanzogui/config', 'react-native-web'],
},
}
})