当前位置:   article > 正文

jeecgboot-vue3首次加载时间优化_jeecgboot删除online

jeecgboot删除online

jeecg3.6首次加载时间比较长,有时需要十来秒,体验挺不好,需要优化一下。

加载时间长的原因是加载的资源比较大,开发环境下有30多M,生产环境下也有15M左右,这么大的依赖包,加载起来肯定会慢。

知道了为什么加载慢了,优化方法也就有了,那就是去掉不需要的依赖。具体方法如下:

1. 去掉百度统计代码,这个是为了减少不必要的请求

  1. diff --git a/index.html b/index.html
  2. index 67ddad8..c80afd8 100644
  3. --- a/index.html
  4. +++ b/index.html
  5. @@ -166,14 +166,5 @@
  6. </div>
  7. </div>
  8. <script type="module" src="/src/main.ts"></script>
  9. - <script>
  10. - var _hmt = _hmt || [];
  11. - (function() {
  12. - var hm = document.createElement("script");
  13. - hm.src = "https://hm.baidu.com/hm.js?0febd9e3cacb3f627ddac64d52caac39";
  14. - var s = document.getElementsByTagName("script")[0];
  15. - s.parentNode.insertBefore(hm, s);
  16. - })();
  17. - </script>
  18. </body>

2. 去掉JCodeEditor组件依赖

  1. diff --git a/src/components/Form/index.ts b/src/components/Form/index.ts
  2. index b18d36d..d6515c5 100644
  3. --- a/src/components/Form/index.ts
  4. +++ b/src/components/Form/index.ts
  5. @@ -14,7 +14,7 @@ export { default as ApiRadioGroup } from './src/components/ApiRadioGroup.vue';
  6. export { default as JAreaLinkage } from './src/jeecg/components/JAreaLinkage.vue';
  7. export { default as JSelectUser } from './src/jeecg/components/JSelectUser.vue';
  8. export { default as JSelectDept } from './src/jeecg/components/JSelectDept.vue';
  9. -export { default as JCodeEditor } from './src/jeecg/components/JCodeEditor.vue';
  10. +// export { default as JCodeEditor } from './src/jeecg/components/JCodeEditor.vue';
  11. export { default as JCategorySelect } from './src/jeecg/components/JCategorySelect.vue';
  12. export { default as JSelectMultiple } from './src/jeecg/components/JSelectMultiple.vue';
  13. export { default as JPopup } from './src/jeecg/components/JPopup.vue';
  14. diff --git a/src/components/Form/src/componentMap.ts b/src/components/Form/src/componentMap.ts
  15. index 9f9e91b..787641d 100644
  16. --- a/src/components/Form/src/componentMap.ts
  17. +++ b/src/components/Form/src/componentMap.ts
  18. @@ -40,7 +40,7 @@ import JAreaSelect from './jeecg/components/JAreaSelect.vue';
  19. import JEditor from './jeecg/components/JEditor.vue';
  20. import JMarkdownEditor from './jeecg/components/JMarkdownEditor.vue';
  21. import JSelectInput from './jeecg/components/JSelectInput.vue';
  22. -import JCodeEditor from './jeecg/components/JCodeEditor.vue';
  23. +// import JCodeEditor from './jeecg/components/JCodeEditor.vue';
  24. import JCategorySelect from './jeecg/components/JCategorySelect.vue';
  25. import JSelectMultiple from './jeecg/components/JSelectMultiple.vue';
  26. import JPopup from './jeecg/components/JPopup.vue';
  27. @@ -112,7 +112,7 @@ componentMap.set('JAreaSelect', JAreaSelect);
  28. componentMap.set('JEditor', JEditor);
  29. componentMap.set('JMarkdownEditor', JMarkdownEditor);
  30. componentMap.set('JSelectInput', JSelectInput);
  31. -componentMap.set('JCodeEditor', JCodeEditor);
  32. +// componentMap.set('JCodeEditor', JCodeEditor);
  33. componentMap.set('JCategorySelect', JCategorySelect);
  34. componentMap.set('JSelectMultiple', JSelectMultiple);
  35. componentMap.set('JPopup', JPopup);

 3. 去掉全局注册仪表盘

  1. diff --git a/src/components/registerGlobComp.ts b/src/components/registerGlobComp.ts
  2. index ef97488..9535306 100644
  3. --- a/src/components/registerGlobComp.ts
  4. +++ b/src/components/registerGlobComp.ts
  5. @@ -2,7 +2,7 @@ import type { App } from 'vue';
  6. import { Icon } from './Icon';
  7. import AIcon from '/@/components/jeecg/AIcon.vue';
  8. //Tinymce富文本
  9. -import Editor from '/@/components/Tinymce/src/Editor.vue';
  10. +// import Editor from '/@/components/Tinymce/src/Editor.vue';
  11. import { Button, JUploadButton } from './Button';
  12. @@ -61,16 +61,16 @@ import {
  13. const compList = [AntButton.Group, Icon, AIcon, JUploadButton];
  14. //敲敲云—仪表盘设计器(拖拽设计)
  15. -import DragEngine from '@qiaoqiaoyun/drag-free';
  16. -import('@qiaoqiaoyun/drag-free/lib/index.css');
  17. -console.log('---初始化---, 全局注册仪表盘--------------');
  18. +// import DragEngine from '@qiaoqiaoyun/drag-free';
  19. +// import('@qiaoqiaoyun/drag-free/lib/index.css');
  20. +// console.log('---初始化---, 全局注册仪表盘--------------');
  21. export function registerGlobComp(app: App) {
  22. compList.forEach((comp) => {
  23. app.component(comp.name || comp.displayName, comp);
  24. });
  25. //仪表盘依赖Tinymce,需要提前加载(没办法按需加载了)
  26. - app.component(Editor.name, Editor);
  27. + // app.component(Editor.name, Editor);
  28. app
  29. .use(Select)
  30. @@ -118,7 +118,7 @@ export function registerGlobComp(app: App) {
  31. .use(InputNumber)
  32. .use(Carousel)
  33. .use(Popconfirm)
  34. - .use(DragEngine)
  35. + // .use(DragEngine)
  36. .use(Skeleton)
  37. .use(Cascader)

4. 去掉全局注册JVxeTable

  1. diff --git a/src/settings/registerThirdComp.ts b/src/settings/registerThirdComp.ts
  2. index bb74e6a..757e01c 100644
  3. --- a/src/settings/registerThirdComp.ts
  4. +++ b/src/settings/registerThirdComp.ts
  5. @@ -1,6 +1,6 @@
  6. import type { App } from 'vue';
  7. -import { registerJVxeTable } from '/@/components/jeecg/JVxeTable';
  8. -import { registerJVxeCustom } from '/@/components/JVxeCustom';
  9. +// import { registerJVxeTable } from '/@/components/jeecg/JVxeTable';
  10. +// import { registerJVxeCustom } from '/@/components/JVxeCustom';
  11. // 注册全局聊天表情包
  12. import { Picker } from 'emoji-mart-vue-fast/src';
  13. @@ -12,9 +12,9 @@ import customParseFormat from 'dayjs/plugin/customParseFormat';
  14. export async function registerThirdComp(app: App) {
  15. //---------------------------------------------------------------------
  16. // 注册 JVxeTable 组件
  17. - registerJVxeTable(app);
  18. + // registerJVxeTable(app);
  19. // 注册 JVxeTable 自定义组件
  20. - await registerJVxeCustom();
  21. + // await registerJVxeCustom();
  22. //---------------------------------------------------------------------
  23. // 注册全局聊天表情包
  24. app.component('Picker', Picker);

5. 去掉注册全局聊天表情包

  1. diff --git a/src/settings/registerThirdComp.ts b/src/settings/registerThirdComp.ts
  2. index 757e01c..08f8e04 100644
  3. --- a/src/settings/registerThirdComp.ts
  4. +++ b/src/settings/registerThirdComp.ts
  5. @@ -3,7 +3,7 @@ import type { App } from 'vue';
  6. // import { registerJVxeCustom } from '/@/components/JVxeCustom';
  7. // 注册全局聊天表情包
  8. -import { Picker } from 'emoji-mart-vue-fast/src';
  9. +// import { Picker } from 'emoji-mart-vue-fast/src';
  10. // 注册全局dayjs
  11. import dayjs from 'dayjs';
  12. import relativeTime from 'dayjs/plugin/relativeTime';
  13. @@ -17,7 +17,7 @@ export async function registerThirdComp(app: App) {
  14. // await registerJVxeCustom();
  15. //---------------------------------------------------------------------
  16. // 注册全局聊天表情包
  17. - app.component('Picker', Picker);
  18. + // app.component('Picker', Picker);

6. 删除demo及online依赖

删除
src/router/routes/mainOut.ts
src/router/routes/modules/demo/
src/views/demo/ 

修改 src/components/Form/src/hooks/useForm.ts

  1. diff --git a/src/components/Form/src/hooks/useForm.ts b/src/components/Form/src/hooks/useForm.ts
  2. index f0e66db..5fdbb19 100644
  3. --- a/src/components/Form/src/hooks/useForm.ts
  4. +++ b/src/components/Form/src/hooks/useForm.ts
  5. @@ -8,7 +8,7 @@ import { error } from '/@/utils/log';
  6. import { getDynamicProps, getValueType } from '/@/utils';
  7. -import { add } from "/@/components/Form/src/componentMap";
  8. +// import { add } from "/@/components/Form/src/componentMap";
  9. //集成online专用控件
  10. -import { OnlineSelectCascade, LinkTableCard, LinkTableSelect } from '@jeecg/online';
  11. +// import { OnlineSelectCascade, LinkTableCard, LinkTableSelect } from '@jeecg/online';
  12. export declare type ValidateFields = (nameList?: NamePath[], options?: ValidateOptions) => Promise<Recordable>;
  13. @@ -19,9 +19,9 @@ export function useForm(props?: Props): UseFormReturnType {
  14. const loadedRef = ref<Nullable<boolean>>(false);
  15. //集成online专用控件
  16. - add("OnlineSelectCascade", OnlineSelectCascade)
  17. - add("LinkTableCard", LinkTableCard)
  18. - add("LinkTableSelect", LinkTableSelect)
  19. + // add("OnlineSelectCascade", OnlineSelectCascade)
  20. + // add("LinkTableCard", LinkTableCard)
  21. + // add("LinkTableSelect", LinkTableSelect)
  22. async function getForm() {
  23. const form = unref(formRef);

修改 src/main.ts

  1. diff --git a/src/main.ts b/src/main.ts
  2. index f73ef78..5ed0c92 100644
  3. --- a/src/main.ts
  4. +++ b/src/main.ts
  5. @@ -16,7 +16,7 @@ import { registerGlobComp } from '/@/components/registerGlobComp';
  6. import { registerThirdComp } from '/@/settings/registerThirdComp';
  7. import { useSso } from '/@/hooks/web/useSso';
  8. // 注册online模块lib
  9. -import { registerPackages } from '/@/utils/monorepo/registerPackages';
  10. +// import { registerPackages } from '/@/utils/monorepo/registerPackages';
  11. // 在本地开发中引入的,以提高浏览器响应速度
  12. if (import.meta.env.DEV) {
  13. @@ -37,7 +37,7 @@ async function bootstrap() {
  14. initAppConfigStore();
  15. // 注册外部模块路由(注册online模块lib)
  16. - registerPackages(app);
  17. + // registerPackages(app);
  18. // 注册全局组件
  19. registerGlobComp(app);

修改 src/router/routes/index.ts

  1. diff --git a/src/router/routes/index.ts b/src/router/routes/index.ts
  2. index b2d00e1..ffdb4dc 100644
  3. --- a/src/router/routes/index.ts
  4. +++ b/src/router/routes/index.ts
  5. @@ -2,7 +2,6 @@ import type { AppRouteRecordRaw, AppRouteModule } from '/@/router/types';
  6. import { PAGE_NOT_FOUND_ROUTE, REDIRECT_ROUTE } from '/@/router/routes/basic';
  7. -import { mainOutRoutes } from './mainOut';
  8. import { PageEnum } from '/@/enums/pageEnum';
  9. import { t } from '/@/hooks/web/useI18n';
  10. @@ -65,4 +64,4 @@ export const TokenLoginRoute: AppRouteRecordRaw = {
  11. };
  12. // Basic routing without permission
  13. -export const basicRoutes = [LoginRoute, RootRoute, ...mainOutRoutes, REDIRECT_ROUTE, PAGE_NOT_FOUND_ROUTE, TokenLoginRoute, Oauth2LoginRoute];
  14. +export const basicRoutes = [LoginRoute, RootRoute, REDIRECT_ROUTE, PAGE_NOT_FOUND_ROUTE, TokenLoginRoute, Oauth2LoginRoute];

经过上述修改之后,依赖包的体积在开发环境下能减少13M 左右,在生产环境下能减小一半左右。加载速度明显加快。当然,其实还有继续优化的空间,把自己项目中用不到的依赖都删掉就可以。

 欢迎关注微信公众号:文本魔术,了解更多 

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/397125
推荐阅读
相关标签
  

闽ICP备14008679号