* feat: migrate top turbo * ci: ci test * fix: fix codeql issues * feat: ci test * chore: lint * chore: misc changes * feat: rename vite helpers * feat: use fetch to handle assets * feat: update directory * feat: fetch charword table * feat: migrate download game data and detect missing voice files * feat: symlink relative path * feat: finish wrangler upload * feat: migrate wrangler download * feat: finish * chore: auto update * ci: update ci * ci: update ci --------- Co-authored-by: Halyul <Halyul@users.noreply.github.com>
46 lines
1.6 KiB
JavaScript
46 lines
1.6 KiB
JavaScript
import path from 'node:path'
|
|
import { defineConfig } from 'vite'
|
|
import react from '@vitejs/plugin-react-swc'
|
|
import config from '@aklive2d/config'
|
|
import * as showcaseDirs from '@aklive2d/showcase'
|
|
import { copyDirectoryData } from '@aklive2d/vite-helpers'
|
|
|
|
// https://vite.dev/config/
|
|
export default defineConfig(async () => {
|
|
const dataDir = path.resolve(import.meta.dirname, config.dir_name.data)
|
|
const publicDir = path.resolve(showcaseDirs.DIST_DIR)
|
|
await copyDirectoryData({ dataDir, publicDir })
|
|
return {
|
|
envDir: dataDir,
|
|
plugins: [react()],
|
|
publicDir,
|
|
resolve: {
|
|
alias: {
|
|
'@': path.resolve('./src'),
|
|
'!': dataDir,
|
|
},
|
|
},
|
|
build: {
|
|
emptyOutDir: false,
|
|
outDir: publicDir,
|
|
rollupOptions: {
|
|
output: {
|
|
entryFileNames: `${config.directory.assets_dir}/[name]-[hash:8].js`,
|
|
chunkFileNames: `${config.directory.assets_dir}/[name]-[hash:8].js`,
|
|
assetFileNames: `${config.directory.assets_dir}/[name]-[hash:8].[ext]`,
|
|
manualChunks: (id) => {
|
|
if (id.includes('node_modules')) {
|
|
return 'vendor' // all other package goes here
|
|
} else if (
|
|
id.includes('data') &&
|
|
id.includes('.json')
|
|
) {
|
|
return 'assets'
|
|
}
|
|
},
|
|
},
|
|
},
|
|
},
|
|
}
|
|
})
|