29 lines
843 B
TypeScript
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 })
|
|
}
|
|
}
|
|
},
|
|
},
|
|
],
|
|
})
|