43 lines
1.7 KiB
TypeScript
43 lines
1.7 KiB
TypeScript
import { defineConfig } from 'vite'
|
|
import vue from '@vitejs/plugin-vue'
|
|
import { fileURLToPath } from 'node:url'
|
|
import { doocusApi } from './server/doocusApi'
|
|
|
|
// Explicit output dirs (env). DOOCUS_OUTPUTS is comma-separated; DOOCUS_OUTPUT
|
|
// (single) is honored too. Defaults to the repo's docs-output for back-compat.
|
|
const outputEnv = process.env.DOOCUS_OUTPUTS ?? process.env.DOOCUS_OUTPUT
|
|
const outputDirs = (outputEnv
|
|
? outputEnv.split(',').map((s) => s.trim()).filter(Boolean)
|
|
: [fileURLToPath(new URL('../../docs-output', import.meta.url))])
|
|
|
|
// Managed collections root (gitignored): UI-scanned sources land here, one
|
|
// subfolder per source, discovered automatically. Override with DOOCUS_DATA.
|
|
const outputsRoot = process.env.DOOCUS_DATA
|
|
?? fileURLToPath(new URL('../../doocus-data', import.meta.url))
|
|
|
|
// Repo root — where process_tree.py lives (run via `uv run` for the scan).
|
|
const repoRoot = fileURLToPath(new URL('../../', import.meta.url))
|
|
|
|
export default defineConfig({
|
|
plugins: [vue(), doocusApi({ outputDirs, outputsRoot, repoRoot })],
|
|
resolve: {
|
|
alias: {
|
|
'@framework': fileURLToPath(new URL('../framework/src', import.meta.url)),
|
|
// Compose meetus's own review components (single source; portable imports).
|
|
'@meetus': fileURLToPath(new URL('../meetus-app/src', import.meta.url)),
|
|
'@': fileURLToPath(new URL('./src', import.meta.url)),
|
|
},
|
|
},
|
|
server: {
|
|
fs: {
|
|
// Allow the dev server to read the framework + meetus-app source and every output tree.
|
|
allow: [
|
|
fileURLToPath(new URL('.', import.meta.url)),
|
|
fileURLToPath(new URL('../framework', import.meta.url)),
|
|
fileURLToPath(new URL('../meetus-app', import.meta.url)),
|
|
...outputDirs,
|
|
],
|
|
},
|
|
},
|
|
})
|