import { fileURLToPath, URL } from 'node:url' import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import vueDevTools from 'vite-plugin-vue-devtools' import { visualizer } from 'rollup-plugin-visualizer' import packageJson from './package.json' import metadata from './public/oauth-client-metadata.json' with { type: 'json' } const SERVER_HOST = '127.0.0.1' const SERVER_PORT = 5173 export default defineConfig({ plugins: [ vue(), visualizer({ filename: '_keep/stats.html' }), vueDevTools(), { name: 'oauth-config', config(_conf, { command }) { if (command === 'build') { process.env.VITE_OAUTH_CLIENT_ID = metadata.client_id process.env.VITE_OAUTH_REDIRECT_URI = metadata.redirect_uris[0] } else { const redirectUri = `http://${SERVER_HOST}:${SERVER_PORT}${new URL(metadata.redirect_uris[0]).pathname}` process.env.VITE_OAUTH_CLIENT_ID = `http://localhost?redirect_uri=${encodeURIComponent(redirectUri)}` + `&scope=${encodeURIComponent(metadata.scope)}` process.env.VITE_OAUTH_REDIRECT_URI = redirectUri } process.env.VITE_OAUTH_SCOPE = metadata.scope }, }, ], define: { __APP_VERSION__: JSON.stringify(packageJson.version), }, resolve: { alias: { '@': fileURLToPath(new URL('./src', import.meta.url)), }, }, })