hackathon/vite.config.ts

29 lines
843 B
TypeScript

import fs from 'fs'
import path from 'path'
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import { SONGS } from './src/features/song-select/song-data'
// Song folders to include in the build (only YouTube-enabled songs).
// Other song folders stay in the repo but are excluded from dist.
const activeSongIds = new Set(SONGS.map((s) => s.id))
// https://vite.dev/config/
export default defineConfig({
plugins: [
react(),
{
name: 'exclude-inactive-songs',
closeBundle() {
const songsDir = path.resolve(__dirname, 'dist/songs')
if (!fs.existsSync(songsDir)) return
for (const dir of fs.readdirSync(songsDir)) {
if (!activeSongIds.has(dir)) {
fs.rmSync(path.join(songsDir, dir), { recursive: true })
}
}
},
},
],
})