Files
wg-portal/frontend/vite.config.mjs

38 lines
807 B
JavaScript
Raw Permalink Normal View History

import { fileURLToPath, URL } from 'url'
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
// https://vitejs.dev/config/
export default defineConfig({
base: './',
plugins: [vue()],
resolve: {
alias: {
'@': fileURLToPath(new URL('./src', import.meta.url))
fix: resolve Prism syntax highlighting error in peer config modal (#727) * fix: resolve Prism syntax highlighting error in peer config modal The PeerViewModal and InterfaceViewModal components displayed: Error: The language "undefined" has no grammar. Root cause: vue-prism-component bundles its own instance of prismjs (separate from the one imported elsewhere), so registering the ini grammar on a different Prism instance had no effect on the one actually performing the highlighting. Fix: bypass vue-prism-component entirely. Import a single Prism instance via a new helper (frontend/src/helpers/prism-setup.js) that also registers the ini grammar, then render highlighted HTML directly with <pre><code v-html="highlightedConfig">. This ensures the same Prism object that owns the ini grammar is the one calling highlight(). Affected files: - frontend/src/helpers/prism-setup.js (new): imports prismjs, defines the ini grammar on the Prism instance, re-exports it - frontend/src/components/PeerViewModal.vue: replaces <Prism> with v-html using the shared Prism instance - frontend/src/components/InterfaceViewModal.vue: same replacement - frontend/src/main.js: removes the now-unused prism-setup import Fixes #726 * Revert "fix: resolve Prism syntax highlighting error in peer config modal" This reverts commit 8d1155224df75bac8578728c411ab4b06c480c83. * fix: resolve Prism syntax highlighting error in peer config modal The PeerViewModal displayed: Error: The language "undefined" has no grammar. Root cause: Vite bundled prismjs as separate instances per lazy-loaded chunk, so the ini grammar registered in one instance was invisible to vue-prism-component which used a different instance. Fix: - Add dedupe: ['prismjs'] to vite.config.mjs to force a single Prism instance across all chunks - Add the missing 'prismjs/components/prism-ini' import in PeerViewModal.vue (InterfaceViewModal already had it)
2026-07-13 07:58:13 +02:00
},
dedupe: ['prismjs']
},
build: {
//
outDir: process.env.DIST_OUT_DIR || '../internal/app/api/core/frontend-dist',
emptyOutDir: true
},
// local dev api (proxy to avoid cors problems)
server: {
port: 5000,
proxy: {
"/api/v0": {
target: "http://localhost:8888",
changeOrigin: true,
secure: false,
withCredentials: true,
headers: {
"x-wg-dev": true,
},
rewrite: (path) => path,
},
},
},
})