1
0
Files
app/rse/vite.config.ts
2026-03-06 18:00:34 +09:00

37 lines
879 B
TypeScript

import { defineConfig } from 'vite'
import { subpages, renderSubpage } from './src/subpages'
export default defineConfig({
publicDir: 'public',
build: {
assetsInlineLimit: 0,
},
appType: 'mpa',
plugins: [
{
name: 'clean-urls',
configureServer(server) {
server.middlewares.use((req, _res, next) => {
const url = req.url?.split('?')[0] ?? ''
if (url.match(/^\/[a-z]+$/) && !url.includes('.')) {
req.url = url + '/index.html'
}
next()
})
},
},
{
name: 'generate-subpages',
generateBundle() {
for (const page of subpages) {
this.emitFile({
type: 'asset',
fileName: `${page.path}/index.html`,
source: renderSubpage(page),
})
}
},
},
],
})