Commit 1899146f71ab2020dc01bd84b282e6b614ad3d57

Authored by vben
1 parent b8846547

perf: mobile style adjustment

CHANGELOG.zh_CN.md
... ... @@ -14,7 +14,7 @@
14 14  
15 15 ### ⚡ Performance Improvements
16 16  
17   -- 页面切换 loading 逻辑修改。对于已经加载过的页面不管有没有关闭,再次打开不会在显示 loading(已经打开过的页面在此打开速度比较快),刷新后恢复。
  17 +- 页面切换 loading 逻辑修改。对于已经加载过的页面不管有没有关闭,再次打开不会在显示 loading(已经打开过的页面再次打开速度比较快,可以不需要 loading,同理顶部进度条逻辑也一样),刷新后恢复。
18 18  
19 19 ### 🎫 Chores
20 20  
... ...
build/vite/plugin/index.ts
... ... @@ -75,6 +75,7 @@ export function createVitePlugins(viteEnv: ViteEnv) {
75 75 createMockServer({
76 76 ignore: /^\_/,
77 77 mockPath: 'mock',
  78 + showTime: true,
78 79 })
79 80 );
80 81 }
... ...
package.json
... ... @@ -47,7 +47,7 @@
47 47 "devDependencies": {
48 48 "@commitlint/cli": "^11.0.0",
49 49 "@commitlint/config-conventional": "^11.0.0",
50   - "@iconify/json": "^1.1.267",
  50 + "@iconify/json": "^1.1.267yar",
51 51 "@ls-lint/ls-lint": "^1.9.2",
52 52 "@purge-icons/generated": "^0.4.1",
53 53 "@types/echarts": "^4.9.2",
... ... @@ -99,7 +99,7 @@
99 99 "typescript": "^4.1.2",
100 100 "vite": "^1.0.0-rc.13",
101 101 "vite-plugin-html": "^1.0.0-beta.2",
102   - "vite-plugin-mock": "^1.0.6",
  102 + "vite-plugin-mock": "^1.0.9",
103 103 "vite-plugin-purge-icons": "^0.4.5",
104 104 "vite-plugin-pwa": "^0.1.7",
105 105 "vue-eslint-parser": "^7.2.0",
... ...
src/App.vue
... ... @@ -16,7 +16,6 @@
16 16  
17 17 import { useLockPage } from '/@/hooks/web/useLockPage';
18 18 import { useLocale } from '/@/hooks/web/useLocale';
19   - import { createBreakpointListen } from '/@/hooks/event/useBreakpoint';
20 19  
21 20 export default defineComponent({
22 21 name: 'App',
... ... @@ -25,9 +24,6 @@
25 24 // Initialize vuex internal system configuration
26 25 initAppConfigStore();
27 26  
28   - // Create a global breakpoint monitor
29   - createBreakpointListen();
30   -
31 27 // Get ConfigProvider configuration
32 28 const { transformCellText } = getConfigProvider();
33 29  
... ...
src/hooks/event/useBreakpoint.ts
... ... @@ -6,6 +6,12 @@ let globalScreenRef: ComputedRef<sizeEnum | undefined>;
6 6 let globalWidthRef: ComputedRef<number>;
7 7 let globalRealWidthRef: ComputedRef<number>;
8 8  
  9 +export interface CreateCallbackParams {
  10 + screen: ComputedRef<sizeEnum | undefined>;
  11 + width: ComputedRef<number>;
  12 + realWidth: ComputedRef<number>;
  13 +}
  14 +
9 15 export function useBreakpoint() {
10 16 return {
11 17 screenRef: computed(() => unref(globalScreenRef)),
... ... @@ -16,7 +22,7 @@ export function useBreakpoint() {
16 22 }
17 23  
18 24 // Just call it once
19   -export function createBreakpointListen(fn?: Fn) {
  25 +export function createBreakpointListen(fn?: (opt: CreateCallbackParams) => void) {
20 26 const screenRef = ref<sizeEnum>(sizeEnum.XL);
21 27 const realWidthRef = ref(window.innerWidth);
22 28  
... ... @@ -46,8 +52,9 @@ export function createBreakpointListen(fn?: Fn) {
46 52 useEventListener({
47 53 el: window,
48 54 name: 'resize',
  55 +
49 56 listener: () => {
50   - fn && fn();
  57 + resizeFn();
51 58 getWindowWidth();
52 59 },
53 60 });
... ... @@ -56,6 +63,17 @@ export function createBreakpointListen(fn?: Fn) {
56 63 globalScreenRef = computed(() => unref(screenRef));
57 64 globalWidthRef = computed((): number => screenMap.get(unref(screenRef)!)!);
58 65 globalRealWidthRef = computed((): number => unref(realWidthRef));
  66 +
  67 + function resizeFn() {
  68 + fn &&
  69 + fn({
  70 + screen: globalScreenRef,
  71 + width: globalWidthRef,
  72 + realWidth: globalRealWidthRef,
  73 + });
  74 + }
  75 +
  76 + resizeFn();
59 77 return {
60 78 screenRef: globalScreenRef,
61 79 screenEnum,
... ...
src/layouts/default/header/LayoutHeader.tsx
... ... @@ -45,6 +45,7 @@ import { MenuModeEnum, MenuSplitTyeEnum } from &#39;/@/enums/menuEnum&#39;;
45 45 import { AppLocalePicker } from '/@/components/Application';
46 46 import { useI18n } from '/@/hooks/web/useI18n';
47 47 import { propTypes } from '/@/utils/propTypes';
  48 +import { useLayoutContext } from '../useLayoutContext';
48 49  
49 50 interface TooltipItemProps {
50 51 title: string;
... ... @@ -71,6 +72,9 @@ export default defineComponent({
71 72  
72 73 // const logoWidthRef = ref(200);
73 74 const logoRef = ref<ComponentRef>(null);
  75 +
  76 + const injectValue = useLayoutContext();
  77 +
74 78 const { refreshPage } = useTabs();
75 79 const { t } = useI18n();
76 80  
... ... @@ -116,6 +120,10 @@ export default defineComponent({
116 120 return theme ? `layout-header__header--${theme}` : '';
117 121 });
118 122  
  123 + const isPc = computed(() => {
  124 + return !unref(injectValue.isMobile);
  125 + });
  126 +
119 127 const getSplitType = computed(() => {
120 128 return unref(getSplit) ? MenuSplitTyeEnum.TOP : MenuSplitTyeEnum.NONE;
121 129 });
... ... @@ -147,11 +155,13 @@ export default defineComponent({
147 155 {unref(getShowHeaderTrigger) && (
148 156 <LayoutTrigger theme={unref(getHeaderTheme)} sider={false} />
149 157 )}
150   - {unref(getShowBread) && <LayoutBreadcrumb showIcon={unref(getShowBreadCrumbIcon)} />}
  158 + {unref(getShowBread) && unref(isPc) && (
  159 + <LayoutBreadcrumb showIcon={unref(getShowBreadCrumbIcon)} />
  160 + )}
151 161 </div>
152 162 )}
153 163  
154   - {unref(getShowTopMenu) && (
  164 + {unref(getShowTopMenu) && unref(isPc) && (
155 165 // <div class={[`layout-header__menu `]} style={{ width: `calc(100% - ${width}px)` }}>
156 166 <div class={[`layout-header__menu `]}>
157 167 <LayoutMenu
... ... @@ -179,7 +189,7 @@ export default defineComponent({
179 189 function renderAction() {
180 190 return (
181 191 <div class={`layout-header__action`}>
182   - {unref(getUseErrorHandle) && (
  192 + {unref(getUseErrorHandle) && unref(isPc) && (
183 193 <TooltipItem title={t('layout.header.tooltipErrorLog')}>
184 194 {() => (
185 195 <Badge
... ... @@ -194,25 +204,25 @@ export default defineComponent({
194 204 </TooltipItem>
195 205 )}
196 206  
197   - {unref(getUseLockPage) && (
  207 + {unref(getUseLockPage) && unref(isPc) && (
198 208 <TooltipItem title={t('layout.header.tooltipLock')}>
199 209 {() => renderActionDefault(LockOutlined, handleLockPage)}
200 210 </TooltipItem>
201 211 )}
202 212  
203   - {unref(getShowNotice) && (
  213 + {unref(getShowNotice) && unref(isPc) && (
204 214 <TooltipItem title={t('layout.header.tooltipNotify')}>
205 215 {() => <NoticeAction />}
206 216 </TooltipItem>
207 217 )}
208 218  
209   - {unref(getShowRedo) && (
  219 + {unref(getShowRedo) && unref(isPc) && (
210 220 <TooltipItem title={t('layout.header.tooltipRedo')}>
211 221 {() => renderActionDefault(RedoOutlined, refreshPage)}
212 222 </TooltipItem>
213 223 )}
214 224  
215   - {unref(getShowFullScreen) && (
  225 + {unref(getShowFullScreen) && unref(isPc) && (
216 226 <TooltipItem
217 227 title={
218 228 unref(isFullscreenRef)
... ...
src/layouts/default/header/LayoutMultipleHeader.tsx
... ... @@ -56,7 +56,7 @@ export default defineComponent({
56 56 (): CSSProperties => {
57 57 const style: CSSProperties = {};
58 58 if (unref(getFixed)) {
59   - style.width = unref(getCalcContentWidth);
  59 + style.width = unref(injectValue.isMobile) ? '100%' : unref(getCalcContentWidth);
60 60 }
61 61 if (unref(getShowFullHeaderRef)) {
62 62 style.top = `${unref(fullHeaderHeightRef)}px`;
... ... @@ -81,7 +81,7 @@ export default defineComponent({
81 81 nextTick(() => {
82 82 const headerEl = unref(headerElRef)?.$el;
83 83 const tabEl = unref(tabElRef)?.$el;
84   - const fullHeaderEl = unref(injectValue.fullHeaderRef)?.$el;
  84 + const fullHeaderEl = unref(injectValue.fullHeader)?.$el;
85 85  
86 86 let height = 0;
87 87 if (headerEl && !unref(getShowFullHeaderRef)) {
... ...
src/layouts/default/index.tsx
... ... @@ -21,14 +21,20 @@ import { useRootSetting } from &#39;/@/hooks/setting/useRootSetting&#39;;
21 21 import { createLayoutContext } from './useLayoutContext';
22 22  
23 23 import { registerGlobComp } from '/@/components/registerGlobComp';
24   -
  24 +import { createBreakpointListen } from '/@/hooks/event/useBreakpoint';
  25 +import { isMobile } from '/@/utils/is';
25 26 export default defineComponent({
26 27 name: 'DefaultLayout',
27 28 setup() {
28 29 const { currentRoute } = useRouter();
29 30 const headerRef = ref<ComponentRef>(null);
  31 + const isMobileRef = ref(false);
  32 +
  33 + createLayoutContext({ fullHeader: headerRef, isMobile: isMobileRef });
30 34  
31   - createLayoutContext({ fullHeaderRef: headerRef });
  35 + createBreakpointListen(() => {
  36 + isMobileRef.value = isMobile();
  37 + });
32 38  
33 39 // ! Only register global components here
34 40 // ! Can reduce the size of the first screen code
... ...
src/layouts/default/sider/index.tsx
... ... @@ -81,7 +81,7 @@ export default defineComponent({
81 81 topRef.value = 0;
82 82 if (unref(getUnFixedAndFull)) return;
83 83 nextTick(() => {
84   - const fullHeaderEl = unref(injectValue.fullHeaderRef)?.$el;
  84 + const fullHeaderEl = unref(injectValue.fullHeader)?.$el;
85 85 if (!fullHeaderEl) return;
86 86 topRef.value = fullHeaderEl.offsetHeight;
87 87 });
... ... @@ -121,10 +121,9 @@ export default defineComponent({
121 121 return () => {
122 122 return (
123 123 <>
124   - {unref(getMenuFixed) && (
  124 + {unref(getMenuFixed) && !unref(injectValue.isMobile) && (
125 125 <div style={unref(getHiddenDomStyle)} class={{ hidden: !unref(showClassSideBarRef) }} />
126 126 )}
127   -
128 127 <Layout.Sider
129 128 ref={sideRef}
130 129 breakpoint="md"
... ...
src/layouts/default/useLayoutContext.ts
... ... @@ -2,7 +2,8 @@ import { InjectionKey, Ref } from &#39;vue&#39;;
2 2 import { createContext, useContext } from '/@/hooks/core/useContext';
3 3  
4 4 export interface LayoutContextProps {
5   - fullHeaderRef: Ref<ComponentRef>;
  5 + fullHeader: Ref<ComponentRef>;
  6 + isMobile: Ref<boolean>;
6 7 }
7 8  
8 9 const layoutContextInjectKey: InjectionKey<LayoutContextProps> = Symbol();
... ...
src/store/modules/tab.ts
... ... @@ -97,10 +97,10 @@ class Tab extends VuexModule {
97 97 const pageCacheSet = new Set<string>();
98 98 this.tabsState.forEach((tab) => {
99 99 const item = getRoute(tab);
100   - const needCache = !item.meta.ignoreKeepAlive;
  100 + const needCache = !item.meta?.ignoreKeepAlive;
101 101 if (!needCache) return;
102 102  
103   - if (item.meta.affix) {
  103 + if (item.meta?.affix) {
104 104 const name = item.name as string;
105 105 pageCacheSet.add(name);
106 106 } else if (item.matched && needCache) {
... ...
src/utils/is.ts
... ... @@ -73,3 +73,9 @@ export function isImageDom(o: Element) {
73 73 export const isTextarea = (element: Element | null): element is HTMLTextAreaElement => {
74 74 return element !== null && element.tagName.toLowerCase() === 'textarea';
75 75 };
  76 +
  77 +export const isMobile = (): boolean => {
  78 + return !!navigator.userAgent.match(
  79 + /(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i
  80 + );
  81 +};
... ...
yarn.lock
... ... @@ -1061,10 +1061,10 @@
1061 1061 resolved "https://registry.npmjs.org/@iconify/iconify/-/iconify-2.0.0-rc.2.tgz#c4a95ddc06ca9b9496df03604e66fdefb39f4c4b"
1062 1062 integrity sha512-BybEHU5/I9EQ0CcwKAqmreZ2bMnAXrqLCTptAc6vPetHMbrXdZfejP5mt57e/8PNSt/qE7BHniU5PCYA+PGIHw==
1063 1063  
1064   -"@iconify/json@^1.1.267":
1065   - version "1.1.267"
1066   - resolved "https://registry.npmjs.org/@iconify/json/-/json-1.1.267.tgz#52ab5390fcaf95e0d68260523a3a3fbc575dfe01"
1067   - integrity sha512-VKNvyALvbuwsXO7r2XvdoqdctmvJzp1/XYOXRfhJ4w+sjtWYp8T3oRGDJ0AZTafzGiBBUaMwCZVP+j87rqgD3w==
  1064 +"@iconify/json@^1.1.267yar":
  1065 + version "1.1.268"
  1066 + resolved "https://registry.npmjs.org/@iconify/json/-/json-1.1.268.tgz#a2691302a6b49b52bc7c47da80e4a5f8fc8919db"
  1067 + integrity sha512-eGk+KuK0Ld/XGb+SzRV2TVBddiGThTiw0ZT+19eMvt8yufRWzi9DeSaogvd5pZoXaDFH25r1fb06nz6PEMqefw==
1068 1068  
1069 1069 "@koa/cors@^3.1.0":
1070 1070 version "3.1.0"
... ... @@ -1174,6 +1174,18 @@
1174 1174 is-module "^1.0.0"
1175 1175 resolve "^1.17.0"
1176 1176  
  1177 +"@rollup/plugin-node-resolve@^11.0.0":
  1178 + version "11.0.0"
  1179 + resolved "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.0.0.tgz#770458fb26691a686c5f29f37dded94832ffce59"
  1180 + integrity sha512-8Hrmwjn1pLYjUxcv7U7IPP0qfnzEJWHyHE6CaZ8jbLM+8axaarJRB1jB6JgKTDp5gNga+TpsgX6F8iuvgOerKQ==
  1181 + dependencies:
  1182 + "@rollup/pluginutils" "^3.1.0"
  1183 + "@types/resolve" "1.17.1"
  1184 + builtin-modules "^3.1.0"
  1185 + deepmerge "^4.2.2"
  1186 + is-module "^1.0.0"
  1187 + resolve "^1.19.0"
  1188 +
1177 1189 "@rollup/plugin-node-resolve@^7.1.1":
1178 1190 version "7.1.3"
1179 1191 resolved "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.3.tgz#80de384edfbd7bfc9101164910f86078151a3eca"
... ... @@ -1198,18 +1210,6 @@
1198 1210 is-module "^1.0.0"
1199 1211 resolve "^1.17.0"
1200 1212  
1201   -"@rollup/plugin-node-resolve@^9.0.0":
1202   - version "9.0.0"
1203   - resolved "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-9.0.0.tgz#39bd0034ce9126b39c1699695f440b4b7d2b62e6"
1204   - integrity sha512-gPz+utFHLRrd41WMP13Jq5mqqzHL3OXrfj3/MkSyB6UBIcuNt9j60GCbarzMzdf1VHFpOxfQh/ez7wyadLMqkg==
1205   - dependencies:
1206   - "@rollup/pluginutils" "^3.1.0"
1207   - "@types/resolve" "1.17.1"
1208   - builtin-modules "^3.1.0"
1209   - deepmerge "^4.2.2"
1210   - is-module "^1.0.0"
1211   - resolve "^1.17.0"
1212   -
1213 1213 "@rollup/plugin-replace@^2.3.1", "@rollup/plugin-replace@^2.3.3":
1214 1214 version "2.3.4"
1215 1215 resolved "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.3.4.tgz#7dd84c17755d62b509577f2db37eb524d7ca88ca"
... ... @@ -1227,7 +1227,7 @@
1227 1227 estree-walker "^1.0.1"
1228 1228 picomatch "^2.2.2"
1229 1229  
1230   -"@rollup/pluginutils@^4.0.0", "@rollup/pluginutils@^4.1.0":
  1230 +"@rollup/pluginutils@^4.1.0":
1231 1231 version "4.1.0"
1232 1232 resolved "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.1.0.tgz#0dcc61c780e39257554feb7f77207dceca13c838"
1233 1233 integrity sha512-TrBhfJkFxA+ER+ew2U2/fHbebhLT/l/2pRk0hfj9KusXUuRXd2v0R58AfaZK9VXDQ4TogOSEmICVrQAA3zFnHQ==
... ... @@ -2557,7 +2557,7 @@ chardet@^0.7.0:
2557 2557 resolved "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
2558 2558 integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==
2559 2559  
2560   -chokidar@^3.4.2:
  2560 +chokidar@^3.4.2, chokidar@^3.4.3:
2561 2561 version "3.4.3"
2562 2562 resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz#c1df38231448e45ca4ac588e6c79573ba6a57d5b"
2563 2563 integrity sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==
... ... @@ -3170,6 +3170,11 @@ dateformat@^3.0.0:
3170 3170 resolved "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae"
3171 3171 integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==
3172 3172  
  3173 +dayjs@^1.9.6:
  3174 + version "1.9.6"
  3175 + resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.9.6.tgz#6f0c77d76ac1ff63720dd1197e5cb87b67943d70"
  3176 + integrity sha512-HngNLtPEBWRo8EFVmHFmSXAjtCX8rGNqeXQI0Gh7wCTSqwaKgPIDqu9m07wABVopNwzvOeCb+2711vQhDlcIXw==
  3177 +
3173 3178 de-indent@^1.0.2:
3174 3179 version "1.0.2"
3175 3180 resolved "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d"
... ... @@ -3542,11 +3547,6 @@ esbuild-register@^1.1.1:
3542 3547 source-map-support "^0.5.19"
3543 3548 strip-json-comments "^3.1.1"
3544 3549  
3545   -esbuild@^0.7.19:
3546   - version "0.7.22"
3547   - resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.7.22.tgz#9149b903f8128b7c45a754046c24199d76bbe08e"
3548   - integrity sha512-B43SYg8LGWYTCv9Gs0RnuLNwjzpuWOoCaZHTWEDEf5AfrnuDMerPVMdCEu7xOdhFvQ+UqfP2MGU9lxEy0JzccA==
3549   -
3550 3550 esbuild@^0.8.12:
3551 3551 version "0.8.15"
3552 3552 resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.8.15.tgz#cbc4d82a7fc4571d455233456e6fba83fd0364f1"
... ... @@ -3557,6 +3557,11 @@ esbuild@^0.8.17:
3557 3557 resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.8.17.tgz#1c16c6d5988dcfdcf27a7e1612b7fd05e1477c54"
3558 3558 integrity sha512-ReHap+Iyn5BQF0B8F3xrLwu+j57ri5uDUw2ej9XTPAuFDebYiWwRzBY4jhF610bklveXLbCGim/8/2wQKQlu1w==
3559 3559  
  3560 +esbuild@^0.8.18:
  3561 + version "0.8.18"
  3562 + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.8.18.tgz#4a8c70df8fffa27164a26daa3ec58ce6f1315446"
  3563 + integrity sha512-EPbCSr7Ems1loeoy1faUGnJOwTwSrGcoYVQ4f4T4JMKjxJxrWAg+zqXkZK7GvqxfvokPp3HV6Raqn6rqAuW7+Q==
  3564 +
3560 3565 escalade@^3.1.1:
3561 3566 version "3.1.1"
3562 3567 resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
... ... @@ -6955,7 +6960,7 @@ resolve-url@^0.2.1:
6955 6960 resolved "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
6956 6961 integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
6957 6962  
6958   -resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.3.2:
  6963 +resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.19.0, resolve@^1.3.2:
6959 6964 version "1.19.0"
6960 6965 resolved "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c"
6961 6966 integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==
... ... @@ -7021,12 +7026,12 @@ rollup-plugin-dynamic-import-variables@^1.1.0:
7021 7026 globby "^11.0.0"
7022 7027 magic-string "^0.25.7"
7023 7028  
7024   -rollup-plugin-esbuild@^2.5.2:
7025   - version "2.5.2"
7026   - resolved "https://registry.npmjs.org/rollup-plugin-esbuild/-/rollup-plugin-esbuild-2.5.2.tgz#fd7d4a88518898012a9d07e4c3ef8b4009c244d3"
7027   - integrity sha512-E4q3ac1AlMd0m0ZRYffdiorOt2eZcxfbdPaqBLs7JLnPE8krgIAihOD6cTUc54UJjoOMA9WcY63TR+JKWLzYNw==
  7029 +rollup-plugin-esbuild@^2.6.0:
  7030 + version "2.6.0"
  7031 + resolved "https://registry.npmjs.org/rollup-plugin-esbuild/-/rollup-plugin-esbuild-2.6.0.tgz#80336399b113a179ccb2af5bdf7c03f061f37146"
  7032 + integrity sha512-wtyDAX8kNABrBfwkrrG2xLRKRGSWUyMBURS067IRvRMpgJlLRo14WcFl95uGc4iYWfdAx436/z1LMzYqdlY4ig==
7028 7033 dependencies:
7029   - "@rollup/pluginutils" "^4.0.0"
  7034 + "@rollup/pluginutils" "^4.1.0"
7030 7035 joycon "^2.2.5"
7031 7036 strip-json-comments "^3.1.1"
7032 7037  
... ... @@ -7135,6 +7140,13 @@ rollup@^2.32.1:
7135 7140 optionalDependencies:
7136 7141 fsevents "~2.1.2"
7137 7142  
  7143 +rollup@^2.34.1:
  7144 + version "2.34.1"
  7145 + resolved "https://registry.npmjs.org/rollup/-/rollup-2.34.1.tgz#a387230df02c58b242794a213dfb68b42de2c8fb"
  7146 + integrity sha512-tGveB6NU5x4MS/iXaIsjfUkEv4hxzJJ4o0FRy5LO62Ndx3R2cmE1qsLYlSfRkvHUUPqWiFoxEm8pRftzh1a5HA==
  7147 + optionalDependencies:
  7148 + fsevents "~2.1.2"
  7149 +
7138 7150 run-async@^2.2.0:
7139 7151 version "2.4.1"
7140 7152 resolved "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455"
... ... @@ -8281,19 +8293,20 @@ vite-plugin-html@^1.0.0-beta.2:
8281 8293 html-minifier-terser "^5.1.1"
8282 8294 lodash "^4.17.20"
8283 8295  
8284   -vite-plugin-mock@^1.0.6:
8285   - version "1.0.6"
8286   - resolved "https://registry.npmjs.org/vite-plugin-mock/-/vite-plugin-mock-1.0.6.tgz#4f47f193fd48a02c66641fc7242bd5329f99b471"
8287   - integrity sha512-+IeCiZBgQt2BpKKzYwoB5bWrrUwiksQh/9zWUrsegGw14PXmXtXXmgHr3CkKjyIChZmvuBs1BPieHD8SyBQAGQ==
  8296 +vite-plugin-mock@^1.0.9:
  8297 + version "1.0.9"
  8298 + resolved "https://registry.npmjs.org/vite-plugin-mock/-/vite-plugin-mock-1.0.9.tgz#035a63787f70f1094f3b3928ea0c0419dc353619"
  8299 + integrity sha512-qWiF56y/U82EdyckZBxhEkrDQBaUc7QhLPcRN+Lu5eI0diA0MvVvucgCueq4/0mEYJpBcaVWsy83cAGb49AQsA==
8288 8300 dependencies:
8289   - "@rollup/plugin-node-resolve" "^9.0.0"
  8301 + "@rollup/plugin-node-resolve" "^11.0.0"
8290 8302 chalk "^4.1.0"
8291   - chokidar "^3.4.2"
8292   - esbuild "^0.7.19"
  8303 + chokidar "^3.4.3"
  8304 + dayjs "^1.9.6"
  8305 + esbuild "^0.8.18"
8293 8306 glob "^7.1.6"
8294 8307 koa-bodyparser "^4.3.0"
8295   - rollup "^2.32.1"
8296   - rollup-plugin-esbuild "^2.5.2"
  8308 + rollup "^2.34.1"
  8309 + rollup-plugin-esbuild "^2.6.0"
8297 8310  
8298 8311 vite-plugin-purge-icons@^0.4.5:
8299 8312 version "0.4.5"
... ...