@@ -9,6 +9,9 @@ import AutoImport from 'unplugin-auto-import/vite'
99import { ElementPlusResolver , VantResolver } from 'unplugin-vue-components/resolvers'
1010import WindiCSS from 'vite-plugin-windicss'
1111import { resolve } from 'path'
12+ import legacy from '@vitejs/plugin-legacy'
13+
14+ const prefix = `monaco-editor/esm/vs` ;
1215
1316// https://vite.dev/config/
1417export default defineConfig ( {
@@ -43,13 +46,17 @@ export default defineConfig({
4346 // // 生成类型声明文件 (可选)
4447 dts : true ,
4548 } ) ,
49+ legacy ( {
50+ targets : [ 'defaults' , 'not IE 11' ] , // 定义目标浏览器
51+ } )
4652 ] ,
4753 build :{
4854 cssCodeSplit :true , // 如果设置false,整个项目中的所有css将被提取到一个css文件
4955 sourcemap :false , // 构建后是否生成source map文件。如果为true,将会创建一个独立的source map文件
5056 target : 'modules' , // 设置最终构建的浏览器兼容目标。默认值是一个 Vite 特有的值——'modules' 还可设置为 'es2015' 'es2016'等
5157 chunkSizeWarningLimit : 550 , // 单位kb 打包后文件大小警告的限制 (文件大于此此值会出现警告)
5258 assetsInlineLimit : 4096 , // 单位字节(1024等于1kb) 小于此阈值的导入或引用资源将内联为 base64 编码,以避免额外的 http 请求。设置为 0 可以完全禁用此项。
59+ // assetsInlineLimit: 0 , // 禁止小文件内联(确保 Worker 文件独立输出)
5360 minify : 'terser' , // 'terser' 相对较慢,但大多数情况下构建后的文件体积更小。'esbuild' 最小化混淆更快但构建后的文件相对更大。
5461 terserOptions : {
5562
@@ -63,10 +70,21 @@ export default defineConfig({
6370 main : resolve ( __dirname , 'index.html' ) ,
6471 preview : resolve ( __dirname , 'preview/index.html' ) ,
6572 } ,
73+ output : {
74+ manualChunks : {
75+ jsonWorker : [ `${ prefix } /language/json/json.worker` ] ,
76+ cssWorker : [ `${ prefix } /language/css/css.worker` ] ,
77+ htmlWorker : [ `${ prefix } /language/html/html.worker` ] ,
78+ tsWorker : [ `${ prefix } /language/typescript/ts.worker` ] ,
79+ editorWorker : [ `${ prefix } /editor/editor.worker` ] ,
80+ } ,
81+ } ,
6682 } ,
6783 } ,
84+ // 强制 Vite 在开发服务器启动时对指定的依赖包进行预编译、代码合并、依赖缓存(结果存储在 node_modules/.vite 目录,后续启动直接复用)
6885 optimizeDeps : {
6986 include : [ '@vueuse/core' , 'element-plus' , 'vant' , 'lodash-es' , 'vuedraggable' ] ,
87+ exclude : [ 'monaco-editor' ]
7088 } ,
7189 resolve : {
7290 alias : {
0 commit comments