Only show YouTube-enabled songs, exclude others from build
Filter SONGS export to only include songs with youtubeVideoId. All song definitions remain in the source for future use. Vite plugin removes non-YouTube song folders from dist after build so they aren't deployed. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>main
parent
b7f13f5593
commit
84a8dfc7f9
|
|
@ -1,6 +1,6 @@
|
||||||
import type { Song } from './types'
|
import type { Song } from './types'
|
||||||
|
|
||||||
export const SONGS: Song[] = [
|
const ALL_SONGS: Song[] = [
|
||||||
{
|
{
|
||||||
id: 'get-lucky',
|
id: 'get-lucky',
|
||||||
title: 'Get Lucky',
|
title: 'Get Lucky',
|
||||||
|
|
@ -374,3 +374,6 @@ export const SONGS: Song[] = [
|
||||||
bannerUrl: '/songs/trap/bn.png',
|
bannerUrl: '/songs/trap/bn.png',
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
|
/** Only songs with YouTube audio are shown in the UI. */
|
||||||
|
export const SONGS: Song[] = ALL_SONGS.filter((s) => s.youtubeVideoId)
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,28 @@
|
||||||
|
import fs from 'fs'
|
||||||
|
import path from 'path'
|
||||||
import { defineConfig } from 'vite'
|
import { defineConfig } from 'vite'
|
||||||
import react from '@vitejs/plugin-react'
|
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/
|
// https://vite.dev/config/
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
plugins: [react()],
|
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 })
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
})
|
})
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue