@@ -4,19 +4,34 @@ import { defineConfig } from 'vite'
44import vue from '@vitejs/plugin-vue'
55import vueJsx from '@vitejs/plugin-vue-jsx'
66import vueDevTools from 'vite-plugin-vue-devtools'
7+ import monacoEditorPlugin from 'vite-plugin-monaco-editor'
78
89// https://vitejs.dev/config/
910export default defineConfig ( {
1011 plugins : [
1112 vue ( ) ,
1213 vueJsx ( ) ,
1314 vueDevTools ( ) ,
15+ ( monacoEditorPlugin as any ) . default ( {
16+ languageWorkers : [ 'editorWorkerService' , 'typescript' , 'json' , 'html' , 'css' ]
17+ } )
1418 ] ,
19+ define : {
20+ // Define Monaco Editor worker paths
21+ 'process.env' : { }
22+ } ,
1523 resolve : {
1624 alias : {
1725 '@' : fileURLToPath ( new URL ( './src' , import . meta. url ) )
1826 }
1927 } ,
28+ optimizeDeps : {
29+ include : [
30+ 'monaco-editor/esm/vs/editor/editor.api' ,
31+ 'monaco-editor/esm/vs/editor/editor.worker' ,
32+ 'monaco-editor/esm/vs/language/typescript/ts.worker'
33+ ]
34+ } ,
2035 build : {
2136 minify : 'terser' ,
2237 terserOptions : {
@@ -28,12 +43,18 @@ export default defineConfig({
2843 output : {
2944 entryFileNames : `assets/[name].js` ,
3045 chunkFileNames : `assets/[name].js` ,
31- assetFileNames : `assets/[name].[ext]`
46+ assetFileNames : ( assetInfo ) => {
47+ if ( assetInfo . name ?. endsWith ( '.ttf' ) || assetInfo . name ?. endsWith ( '.woff' ) || assetInfo . name ?. endsWith ( '.woff2' ) ) {
48+ return 'assets/fonts/[name].[ext]' ;
49+ }
50+ return 'assets/[name].[ext]' ;
51+ }
3252 }
3353 } ,
3454 sourcemap : true ,
3555 outDir : 'dist' ,
3656 emptyOutDir : true ,
3757 target : 'esnext' ,
58+ assetsInlineLimit : 0 , // Don't inline assets, keep them as separate files
3859 }
3960} )
0 commit comments