Files
aklive2d/apps/directory/vite.config.js
Haoyu Xu d6e7bc20d3 feat: migrate to turbo (#22)
* 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>
2025-02-22 15:11:30 +08:00

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'
}
},
},
},
},
}
})