openpencil/vite.config.ts
Danila Poyarkov f88a66fced chore: merge master into live-editor-regressions
Preserve brand-asset preparation and the worktree-aware Vite server configuration.
2026-09-16 15:06:30 +03:00

58 lines
1.9 KiB
TypeScript

import process from 'node:process'
import tailwindcss from '@tailwindcss/vite'
import vue from '@vitejs/plugin-vue'
import IconsResolver from 'unplugin-icons/resolver'
import Icons from 'unplugin-icons/vite'
import Components from 'unplugin-vue-components/vite'
import { defineConfig } from 'vite'
import { ensureBrandAssets } from '@open-pencil/brand-tools'
import packageJson from './package.json'
import { createOpenPencilAliases } from './vite/aliases'
import {
localAutomationRoute,
localAutomationToken,
openPencilAutomationPlugin
} from './vite/automation'
import { copyCanvasKitAssetsPlugin } from './vite/canvaskit-assets'
import { openPencilPwaPlugin } from './vite/pwa'
import { rawMarkdownPlugin } from './vite/raw-markdown'
import { createDevServerOptions } from './vite/server'
const host = process.env.TAURI_DEV_HOST
const automationRoute = localAutomationRoute(host)
export default defineConfig(async ({ command }) => {
await ensureBrandAssets(['web'])
return {
resolve: {
alias: createOpenPencilAliases(__dirname)
},
define: {
__OPENPENCIL_APP_VERSION__: JSON.stringify(packageJson.version),
__OPENPENCIL_LOCAL_AUTOMATION_TOKEN__: JSON.stringify(localAutomationToken(command)),
__OPENPENCIL_LOCAL_AUTOMATION_URL__: JSON.stringify(automationRoute.browserURL),
__OPENPENCIL_LOCAL_AUTOMATION_HTTP_URL__: JSON.stringify(
automationRoute.browserURL.replace(/^ws/, 'http')
)
},
plugins: [
rawMarkdownPlugin(),
copyCanvasKitAssetsPlugin(),
tailwindcss(),
Icons({ compiler: 'vue3' }),
Components({ resolvers: [IconsResolver({ prefix: 'icon' })] }),
openPencilAutomationPlugin(command, host),
vue(),
openPencilPwaPlugin()
],
clearScreen: false,
build: {
chunkSizeWarningLimit: 2500
},
server: createDevServerOptions(host, __dirname)
}
})