From aedc10a6dca3249ceaaa0f1d6aadcfa185423410 Mon Sep 17 00:00:00 2001 From: xiaoxian521 <1923740402@qq.com> Date: Fri, 25 Nov 2022 15:50:21 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96=20`vite`=20=E4=BE=9D?= =?UTF-8?q?=E8=B5=96=E9=A2=84=E6=9E=84=E5=BB=BA=E5=9C=A8=E5=B9=B3=E5=8F=B0?= =?UTF-8?q?=E9=87=8C=E7=9A=84=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vite.config.ts | 41 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/vite.config.ts b/vite.config.ts index 977671b59..d5d41179d 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -45,8 +45,47 @@ export default ({ command, mode }: ConfigEnv): UserConfigExport => { proxy: {} }, plugins: getPluginsList(command, VITE_CDN, VITE_COMPRESSION), + // https://cn.vitejs.dev/config/dep-optimization-options.html#dep-optimization-options optimizeDeps: { - include: ["pinia", "vue-i18n", "lodash-es", "@vueuse/core", "dayjs"], + /** + * 依赖预构建,vite启动时会将下面 include 里的模块,编译成 esm 格式并缓存到 node_modules/.vite 文件夹,页面加载到对应模块时如果浏览器有缓存就读取浏览器缓存,如果没有会读取本地缓存并按需加载 + * 尤其当您禁用浏览器缓存时(这种情况只应该发生在调试阶段)必须将对应模块加入到 include里,否则会遇到开发环境切换页面卡顿的问题(vite 会认为它是一个新的依赖包会重新加载并强制刷新页面),因为它既无法使用浏览器缓存,又没有在本地 node_modules/.vite 里缓存 + * 温馨提示:如果您使用的第三方库是全局引入,也就是引入到 src/main.ts 文件里,就不需要再添加到 include 里了,因为 vite 会自动将它们缓存到 node_modules/.vite + */ + include: [ + "xlsx", + "dayjs", + "pinia", + "swiper", + "intro.js", + "vue-i18n", + "lodash", + "lodash-es", + "cropperjs", + "jsbarcode", + "sortablejs", + "swiper/vue", + "@vueuse/core", + "vue3-danmaku", + "v-contextmenu", + "vue-pdf-embed", + "lodash-unified", + "china-area-data", + "@faker-js/faker", + "vue-json-pretty", + "@logicflow/core", + "@pureadmin/utils", + "@howdyjs/mouse-menu", + "@logicflow/extension", + "@amap/amap-jsapi-loader", + "el-table-infinite-scroll", + "@wangeditor/editor-for-vue", + "xgplayer/dist/simple_player", + "xgplayer/es/controls/volume", + "vuedraggable/src/vuedraggable", + "xgplayer/es/controls/screenShot", + "xgplayer/es/controls/playbackRate" + ], exclude: ["@pureadmin/theme/dist/browser-utils"] }, build: {