From b6c6d763543fb2e051c7c28c2eadad0afd2d2e74 Mon Sep 17 00:00:00 2001 From: Alex Frantz Date: Wed, 5 Feb 2025 20:22:35 -0500 Subject: [PATCH] setup build process --- package.json | 9 +++------ src/components/Header.tsx | 5 ++++- vite.config.ts | 11 +++++++++-- 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index 17218b2..91cc5f8 100644 --- a/package.json +++ b/package.json @@ -4,12 +4,9 @@ "version": "0.0.0", "type": "module", "scripts": { - "dev:ssr": "ts-node --esm server.ts", - "dev": "vite", - "build": "tsc && vite build", - "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", - "preview": "vite preview", - "start": "tsc && vite build && serve -p 8099 -s ./dist" + "build": "npm run build:client && npm run build:server", + "build:client": "vite build --outDir dist/client", + "build:server": "cross-env SSR=true vite build --outDir dist/server" }, "dependencies": { "@types/express": "^5.0.0", diff --git a/src/components/Header.tsx b/src/components/Header.tsx index 8d936cc..6d299ac 100644 --- a/src/components/Header.tsx +++ b/src/components/Header.tsx @@ -20,8 +20,11 @@ export default function Header({ "where else would you rather be..", "..than right here, right now?!" ] - const [ quote, setQuote ] = useState(quoteArray[Math.floor(Math.random() * quoteArray.length)]); + const [ quote, setQuote ] = useState(quoteArray[0]); + useEffect(() => { + setQuote(quoteArray[Math.floor(Math.random() * quoteArray.length)]) + }, []) const drawNewQuote = () => { const newQuote = quoteArray[Math.floor(Math.random() * quoteArray.length)] diff --git a/vite.config.ts b/vite.config.ts index 5f4deed..3795b3f 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,8 +1,15 @@ import { defineConfig } from 'vite' import react from '@vitejs/plugin-react' -// https://vitejs.dev/config/ export default defineConfig({ plugins: [react()], - publicDir: "./src/public" + publicDir: './src/public', + build: { + copyPublicDir: !!process.env.SSR, + ssr: !!process.env.SSR, + outDir: process.env.SSR ? 'dist/server' : 'dist/client', + rollupOptions: { + input: process.env.SSR ? './server.ts' : './index.html' + } + } })