// vite.config.ts import vue from '@vitejs/plugin-vue' import vueJsx from '@vitejs/plugin-vue-jsx' import path from 'path' import { defineConfig } from 'vite' import svgLoader from 'vite-svg-loader' import Markdown from 'unplugin-vue-markdown/vite' import caddyTls from './plugins/vite-plugin-caddy' import ViteMonacoPlugin from 'vite-plugin-monaco-editor' import monacoEditorPluginModule from 'vite-plugin-monaco-editor' const isObjectWithDefaultFunction = ( module: unknown ): module is { default: typeof monacoEditorPluginModule } => module != null && typeof module === 'object' && 'default' in module && typeof module.default === 'function' const monacoEditorPlugin = isObjectWithDefaultFunction(monacoEditorPluginModule) ? monacoEditorPluginModule.default : monacoEditorPluginModule export default defineConfig({ plugins: [ vue({ script: { propsDestructure: true, defineModel: true }, include: [/\.vue$/, /\.md$/], template: { compilerOptions: { isCustomElement: (tag) => tag.startsWith('yt-') } } }), svgLoader(), vueJsx(), Markdown({ /* options */ }), caddyTls(), monacoEditorPlugin({ languageWorkers: ['css'] }) ], resolve: { alias: { '@': path.resolve(__dirname, 'src') } }, define: { 'process.env': {}, global: 'window' }, optimizeDeps: { include: ['@vicons/fluent', '@vicons/ionicons5', 'vue', 'vue-router'] } })