diff --git a/electron.vite.config.ts b/electron.vite.config.ts index d1303ea..0657da2 100644 --- a/electron.vite.config.ts +++ b/electron.vite.config.ts @@ -33,6 +33,12 @@ export default defineConfig({ build: { outDir: 'dist/renderer', }, + optimizeDeps: { + // @lexical/code-prism depends on prismjs + its language components via + // CJS require(). Vite must pre-bundle them together so that the Prism + // global is available when component IIFEs execute. + include: ['prismjs', '@lexical/code-prism'], + }, plugins: [react(), tailwindcss()], resolve: { alias: { diff --git a/src/renderer/lib/prismSetup.ts b/src/renderer/lib/prismSetup.ts deleted file mode 100644 index 4823780..0000000 --- a/src/renderer/lib/prismSetup.ts +++ /dev/null @@ -1,15 +0,0 @@ -/** - * Ensures the PrismJS global is available before @lexical/code-prism - * captures its tokenizer reference. - * - * @lexical/code-prism reads `globalThis.Prism` at module-evaluation time. - * In Vite dev mode the esbuild CJS shim may not have set the global yet, - * so we force it here. This module must be imported before any module - * that transitively loads @lexical/code-prism. - */ -import Prism from 'prismjs'; - -if (typeof globalThis !== 'undefined' && !globalThis.Prism) { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - (globalThis as any).Prism = Prism; -} diff --git a/src/renderer/main.tsx b/src/renderer/main.tsx index 4591098..cc67373 100644 --- a/src/renderer/main.tsx +++ b/src/renderer/main.tsx @@ -1,7 +1,6 @@ import { StrictMode } from 'react'; import { createRoot } from 'react-dom/client'; -import '@renderer/lib/prismSetup'; import App from '@renderer/App'; import '@renderer/styles.css';