@kengic/vue 0.21.4 → 0.21.5-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/dist/kengic-vue.js +8 -3
  2. package/dist/project/build/config/themeConfig.ts +67 -0
  3. package/dist/project/build/constant.ts +6 -0
  4. package/dist/project/build/generate/generateModifyVars.ts +39 -0
  5. package/dist/project/build/generate/icon/index.ts +66 -0
  6. package/dist/project/build/getConfigFileName.ts +7 -0
  7. package/dist/project/build/index.ts +9 -0
  8. package/dist/project/build/script/buildConf.ts +45 -0
  9. package/dist/project/build/script/postBuild.ts +21 -0
  10. package/dist/project/build/utils.ts +92 -0
  11. package/dist/project/build/vite/plugin/compress.ts +32 -0
  12. package/dist/project/build/vite/plugin/html.ts +39 -0
  13. package/dist/project/build/vite/plugin/imagemin.ts +34 -0
  14. package/dist/project/build/vite/plugin/index.ts +80 -0
  15. package/dist/project/build/vite/plugin/mock.ts +19 -0
  16. package/dist/project/build/vite/plugin/pwa.ts +33 -0
  17. package/dist/project/build/vite/plugin/styleImport.ts +81 -0
  18. package/dist/project/build/vite/plugin/svgSprite.ts +17 -0
  19. package/dist/project/build/vite/plugin/theme.ts +100 -0
  20. package/dist/project/build/vite/plugin/visualizer.ts +17 -0
  21. package/dist/project/build/vite/proxy.ts +34 -0
  22. package/dist/project/index.ts +1 -0
  23. package/dist/project/src/api/sys/model/menuModel.ts +17 -0
  24. package/dist/project/src/api/sys/model/uploadModel.ts +5 -0
  25. package/dist/project/src/api/sys/model/userModel.ts +57 -0
  26. package/dist/project/src/enums/CompTypeEnum.ts +32 -0
  27. package/dist/project/src/enums/DateTypeEnum.ts +8 -0
  28. package/dist/project/src/enums/appEnum.ts +58 -0
  29. package/dist/project/src/enums/breakpointEnum.ts +28 -0
  30. package/dist/project/src/enums/cacheEnum.ts +39 -0
  31. package/dist/project/src/enums/exceptionEnum.ts +27 -0
  32. package/dist/project/src/enums/httpEnum.ts +50 -0
  33. package/dist/project/src/enums/jeecgEnum.ts +23 -0
  34. package/dist/project/src/enums/menuEnum.ts +50 -0
  35. package/dist/project/src/enums/pageEnum.ts +19 -0
  36. package/dist/project/src/enums/roleEnum.ts +7 -0
  37. package/dist/project/src/enums/sizeEnum.ts +27 -0
  38. package/dist/project/types/axios.d.ts +57 -0
  39. package/dist/project/types/config.d.ts +178 -0
  40. package/dist/project/types/global.d.ts +92 -0
  41. package/dist/project/types/index.d.ts +27 -0
  42. package/dist/project/types/module.d.ts +18 -0
  43. package/dist/project/types/store.d.ts +59 -0
  44. package/dist/project/types/utils.d.ts +5 -0
  45. package/dist/project/types/vue-router.d.ts +47 -0
  46. package/package.json +25 -2
@@ -0,0 +1,7 @@
1
+ export enum RoleEnum {
2
+ // super admin
3
+ SUPER = 'super',
4
+
5
+ // tester
6
+ TEST = 'test',
7
+ }
@@ -0,0 +1,27 @@
1
+ export enum SizeEnum {
2
+ DEFAULT = 'default',
3
+ SMALL = 'small',
4
+ LARGE = 'large',
5
+ }
6
+
7
+ export enum SizeNumberEnum {
8
+ DEFAULT = 48,
9
+ SMALL = 16,
10
+ LARGE = 64,
11
+ }
12
+
13
+ export enum ScreenSizeEnum {
14
+ XS = 480,
15
+ SM = 576,
16
+ MD = 768,
17
+ LG = 992,
18
+ XL = 1200,
19
+ }
20
+
21
+ export const sizeMap: Map<SizeEnum, SizeNumberEnum> = (() => {
22
+ const map = new Map<SizeEnum, SizeNumberEnum>();
23
+ map.set(SizeEnum.DEFAULT, SizeNumberEnum.DEFAULT);
24
+ map.set(SizeEnum.SMALL, SizeNumberEnum.SMALL);
25
+ map.set(SizeEnum.LARGE, SizeNumberEnum.LARGE);
26
+ return map;
27
+ })();
@@ -0,0 +1,57 @@
1
+ export type ErrorMessageMode = 'none' | 'modal' | 'message' | undefined;
2
+ export type SuccessMessageMode = 'none' | 'success' | 'error' | undefined;
3
+
4
+ export interface RequestOptions {
5
+ // 将请求参数拼接到url
6
+ joinParamsToUrl?: boolean;
7
+ // 格式化请求参数时间
8
+ formatDate?: boolean;
9
+ // 是否处理请求结果
10
+ isTransformResponse?: boolean;
11
+ // 是否返回本地响应头,需要获取响应头时使用此属性
12
+ isReturnNativeResponse?: boolean;
13
+ // Whether to join url
14
+ joinPrefix?: boolean;
15
+ // 接口地址,如果保留为空,则使用默认值
16
+ apiUrl?: string;
17
+ // 请求拼接路径
18
+ urlPrefix?: string;
19
+ // 错误消息提示类型
20
+ errorMessageMode?: ErrorMessageMode;
21
+ // 成功消息提示类型
22
+ successMessageMode?: SuccessMessageMode;
23
+ // 是否添加时间戳
24
+ joinTime?: boolean;
25
+ ignoreCancelToken?: boolean;
26
+ //是否在标头中发送令牌
27
+ withToken?: boolean;
28
+ }
29
+
30
+ export interface Result<T = any> {
31
+ code: number;
32
+ type: 'success' | 'error' | 'warning';
33
+ message: string;
34
+ success?: boolean | null;
35
+ timestamp?: number | null;
36
+ result: T;
37
+ }
38
+
39
+ //文件上传参数
40
+ export interface UploadFileParams {
41
+ // 其他参数
42
+ data?: Recordable;
43
+ // 文件参数接口字段名
44
+ name?: string;
45
+ // 文件
46
+ file: File | Blob;
47
+ // 文件名
48
+ filename?: string;
49
+ [key: string]: any;
50
+ }
51
+ //文件返回参数
52
+ export interface UploadFileCallBack {
53
+ // 成功回调方法
54
+ success?: any;
55
+ // 是否返回响应头,需要获取响应头时使用此属性
56
+ isReturnResponse?: boolean;
57
+ }
@@ -0,0 +1,178 @@
1
+ import {
2
+ ContentEnum,
3
+ PermissionModeEnum,
4
+ RouterTransitionEnum,
5
+ SessionTimeoutProcessingEnum,
6
+ SettingButtonPositionEnum,
7
+ ThemeEnum,
8
+ } from '../src/enums/appEnum';
9
+ import { CacheTypeEnum } from '../src/enums/cacheEnum';
10
+
11
+ import { MenuModeEnum, MenuTypeEnum, MixSidebarTriggerEnum, TriggerEnum } from '../src/enums/menuEnum';
12
+
13
+ export type LocaleType = 'zh_CN' | 'en' | 'ru' | 'ja' | 'ko';
14
+
15
+ export interface MenuSetting {
16
+ bgColor: string;
17
+ fixed: boolean;
18
+ collapsed: boolean;
19
+ canDrag: boolean;
20
+ show: boolean;
21
+ hidden: boolean;
22
+ split: boolean;
23
+ menuWidth: number;
24
+ mode: MenuModeEnum;
25
+ type: MenuTypeEnum;
26
+ theme: ThemeEnum;
27
+ topMenuAlign: 'start' | 'center' | 'end';
28
+ trigger: TriggerEnum;
29
+ accordion: boolean;
30
+ closeMixSidebarOnChange: boolean;
31
+ collapsedShowTitle: boolean;
32
+ mixSideTrigger: MixSidebarTriggerEnum;
33
+ mixSideFixed: boolean;
34
+ }
35
+
36
+ export interface MultiTabsSetting {
37
+ cache: boolean;
38
+ show: boolean;
39
+ showQuick: boolean;
40
+ canDrag: boolean;
41
+ showRedo: boolean;
42
+ showFold: boolean;
43
+ theme: string;
44
+ }
45
+
46
+ export interface HeaderSetting {
47
+ bgColor: string;
48
+ fixed: boolean;
49
+ show: boolean;
50
+ theme: ThemeEnum;
51
+ // Turn on full screen
52
+ showFullScreen: boolean;
53
+ // Whether to show the lock screen
54
+ useLockPage: boolean;
55
+ // Show document button
56
+ showDoc: boolean;
57
+ // Show message center button
58
+ showNotice: boolean;
59
+ showSearch: boolean;
60
+ }
61
+
62
+ export interface LocaleSetting {
63
+ showPicker: boolean;
64
+ // Current language
65
+ locale: LocaleType;
66
+ // default language
67
+ fallback: LocaleType;
68
+ // available Locales
69
+ availableLocales: LocaleType[];
70
+ }
71
+
72
+ export interface TransitionSetting {
73
+ // Whether to open the page switching animation
74
+ enable: boolean;
75
+ // Route basic switching animation
76
+ basicTransition: RouterTransitionEnum;
77
+ // Whether to open page switching loading
78
+ openPageLoading: boolean;
79
+ // Whether to open the top progress bar
80
+ openNProgress: boolean;
81
+ }
82
+
83
+ export interface ProjectConfig {
84
+ // Storage location of permission related information
85
+ permissionCacheType: CacheTypeEnum;
86
+ // Whether to show the configuration button
87
+ showSettingButton: boolean;
88
+ // Whether to show the theme switch button
89
+ showDarkModeToggle: boolean;
90
+ // Configure where the button is displayed
91
+ settingButtonPosition: SettingButtonPositionEnum;
92
+ // Permission mode
93
+ permissionMode: PermissionModeEnum;
94
+ // Session timeout processing
95
+ sessionTimeoutProcessing: SessionTimeoutProcessingEnum;
96
+ // Website gray mode, open for possible mourning dates
97
+ grayMode: boolean;
98
+ // Whether to turn on the color weak mode
99
+ colorWeak: boolean;
100
+ // Theme color
101
+ themeColor: string;
102
+
103
+ // The main interface is displayed in full screen, the menu is not displayed, and the top
104
+ fullContent: boolean;
105
+ // content width
106
+ contentMode: ContentEnum;
107
+ // Whether to display the logo
108
+ showLogo: boolean;
109
+ // Whether to show the global footer
110
+ showFooter: boolean;
111
+ // menuType: MenuTypeEnum;
112
+ headerSetting: HeaderSetting;
113
+ // menuSetting
114
+ menuSetting: MenuSetting;
115
+ // Multi-tab settings
116
+ multiTabsSetting: MultiTabsSetting;
117
+ // Animation configuration
118
+ transitionSetting: TransitionSetting;
119
+ // pageLayout whether to enable keep-alive
120
+ openKeepAlive: boolean;
121
+ // Lock screen time
122
+ lockTime: number;
123
+ // Show breadcrumbs
124
+ showBreadCrumb: boolean;
125
+ // Show breadcrumb icon
126
+ showBreadCrumbIcon: boolean;
127
+ // Use error-handler-plugin
128
+ useErrorHandle: boolean;
129
+ // Whether to open back to top
130
+ useOpenBackTop: boolean;
131
+ // Is it possible to embed iframe pages
132
+ canEmbedIFramePage: boolean;
133
+ // Whether to delete unclosed messages and notify when switching the interface
134
+ closeMessageOnSwitch: boolean;
135
+ // Whether to cancel the http request that has been sent but not responded when switching the interface.
136
+ removeAllHttpPending: boolean;
137
+ }
138
+
139
+ export interface GlobConfig {
140
+ // Site title
141
+ title: string;
142
+ // Service interface url
143
+ apiUrl: string;
144
+ domainUrl: string;
145
+ // Upload url (作废)
146
+ uploadUrl?: string;
147
+ openSso?: string;
148
+ openQianKun?: string;
149
+ casBaseUrl?: string;
150
+ // onlineview url
151
+ viewUrl?: string;
152
+ // Service interface url prefix
153
+ urlPrefix?: string;
154
+ // Project abbreviation
155
+ shortName: string;
156
+ }
157
+ export interface GlobEnvConfig {
158
+ // Site title
159
+ VITE_GLOB_APP_TITLE: string;
160
+ // Service interface url
161
+ VITE_GLOB_API_URL: string;
162
+ VITE_USE_MOCK: string;
163
+ // Service interface url prefix
164
+ VITE_GLOB_API_URL_PREFIX?: string;
165
+ // Project abbreviation
166
+ VITE_GLOB_APP_SHORT_NAME: string;
167
+ //是否开启单点登录
168
+ VITE_GLOB_APP_OPEN_SSO: string;
169
+ //是否开启微应用模式
170
+ VITE_GLOB_APP_OPEN_QIANKUN: string;
171
+ //单点服务端地址
172
+ VITE_GLOB_APP_CAS_BASE_URL: string;
173
+ VITE_GLOB_DOMAIN_URL: string;
174
+ // Upload url
175
+ VITE_GLOB_UPLOAD_URL?: string;
176
+ // view url
177
+ VITE_GLOB_ONLINE_VIEW_URL?: string;
178
+ }
@@ -0,0 +1,92 @@
1
+ import type { ComponentPublicInstance, ComponentRenderProxy, FunctionalComponent, PropType as VuePropType, VNode, VNodeChild } from 'vue';
2
+
3
+ declare global {
4
+ const __APP_INFO__: {
5
+ pkg: {
6
+ name: string;
7
+ version: string;
8
+ dependencies: Recordable<string>;
9
+ devDependencies: Recordable<string>;
10
+ };
11
+ lastBuildTime: string;
12
+ };
13
+ // declare interface Window {
14
+ // // Global vue app instance
15
+ // __APP__: App<Element>;
16
+ // }
17
+
18
+ // vue
19
+ declare type PropType<T> = VuePropType<T>;
20
+ declare type VueNode = VNodeChild | JSX.Element;
21
+
22
+ export type Writable<T> = {
23
+ -readonly [P in keyof T]: T[P];
24
+ };
25
+
26
+ declare type Nullable<T> = T | null;
27
+ declare type NonNullable<T> = T extends null | undefined ? never : T;
28
+ declare type Recordable<T = any> = Record<string, T>;
29
+ declare type ReadonlyRecordable<T = any> = {
30
+ readonly [key: string]: T;
31
+ };
32
+ declare type Indexable<T = any> = {
33
+ [key: string]: T;
34
+ };
35
+ declare type DeepPartial<T> = {
36
+ [P in keyof T]?: DeepPartial<T[P]>;
37
+ };
38
+ declare type TimeoutHandle = ReturnType<typeof setTimeout>;
39
+ declare type IntervalHandle = ReturnType<typeof setInterval>;
40
+
41
+ declare interface ChangeEvent extends Event {
42
+ target: HTMLInputElement;
43
+ }
44
+
45
+ declare interface WheelEvent {
46
+ path?: EventTarget[];
47
+ }
48
+ interface ImportMetaEnv extends ViteEnv {
49
+ __: unknown;
50
+ }
51
+
52
+ declare interface ViteEnv {
53
+ VITE_PORT: number;
54
+ VITE_USE_MOCK: boolean;
55
+ VITE_USE_PWA: boolean;
56
+ VITE_PUBLIC_PATH: string;
57
+ VITE_PROXY: [string, string][];
58
+ VITE_GLOB_APP_TITLE: string;
59
+ VITE_GLOB_APP_SHORT_NAME: string;
60
+ VITE_USE_CDN: boolean;
61
+ VITE_DROP_CONSOLE: boolean;
62
+ VITE_BUILD_COMPRESS: 'gzip' | 'brotli' | 'none';
63
+ VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE: boolean;
64
+ VITE_LEGACY: boolean;
65
+ VITE_USE_IMAGEMIN: boolean;
66
+ VITE_GENERATE_UI: string;
67
+ }
68
+
69
+ declare function parseInt(s: string | number, radix?: number): number;
70
+
71
+ declare function parseFloat(string: string | number): number;
72
+
73
+ namespace JSX {
74
+ // tslint:disable no-empty-interface
75
+ type Element = VNode;
76
+ // tslint:disable no-empty-interface
77
+ type ElementClass = ComponentRenderProxy;
78
+ interface ElementAttributesProperty {
79
+ $props: any;
80
+ }
81
+ interface IntrinsicElements {
82
+ [elem: string]: any;
83
+ }
84
+ interface IntrinsicAttributes {
85
+ [elem: string]: any;
86
+ }
87
+ }
88
+ }
89
+
90
+ declare module 'vue' {
91
+ export type JSXComponent<Props = any> = { new (): ComponentPublicInstance<Props> } | FunctionalComponent<Props>;
92
+ }
@@ -0,0 +1,27 @@
1
+ declare interface Fn<T = any, R = T> {
2
+ (...arg: T[]): R;
3
+ }
4
+
5
+ declare interface PromiseFn<T = any, R = T> {
6
+ (...arg: T[]): Promise<R>;
7
+ }
8
+
9
+ declare type RefType<T> = T | null;
10
+
11
+ declare type LabelValueOptions = {
12
+ label: string;
13
+ value: any;
14
+ [key: string]: string | number | boolean;
15
+ }[];
16
+
17
+ declare type EmitType = (event: string, ...args: any[]) => void;
18
+
19
+ declare type TargetContext = '_self' | '_blank';
20
+
21
+ declare interface ComponentElRef<T extends HTMLElement = HTMLDivElement> {
22
+ $el: T;
23
+ }
24
+
25
+ declare type ComponentRef<T extends HTMLElement = HTMLDivElement> = ComponentElRef<T> | null;
26
+
27
+ declare type ElRef<T extends HTMLElement = HTMLDivElement> = Nullable<T>;
@@ -0,0 +1,18 @@
1
+ declare module '*.vue' {
2
+ import { DefineComponent } from 'vue';
3
+ const Component: DefineComponent<{}, {}, any>;
4
+ export default Component;
5
+ }
6
+
7
+ declare module 'ant-design-vue/dist/theme';
8
+
9
+ declare module 'ant-design-vue/es/locale/*' {
10
+ import { Locale } from 'ant-design-vue/types/locale-provider';
11
+ const locale: Locale & ReadonlyRecordable;
12
+ export default locale as Locale & ReadonlyRecordable;
13
+ }
14
+
15
+ declare module 'virtual:*' {
16
+ const result: any;
17
+ export default result;
18
+ }
@@ -0,0 +1,59 @@
1
+ import { RoleInfo } from '../src/api/sys/model/userModel';
2
+ import { ErrorTypeEnum } from '../src/enums/exceptionEnum';
3
+ import { MenuModeEnum, MenuTypeEnum } from '../src/enums/menuEnum';
4
+
5
+ // Lock screen information
6
+ export interface LockInfo {
7
+ // Password required
8
+ pwd?: string | undefined;
9
+ // Is it locked?
10
+ isLock?: boolean;
11
+ }
12
+
13
+ // Error-log information
14
+ export interface ErrorLogInfo {
15
+ // Type of error
16
+ type: ErrorTypeEnum;
17
+ // Error file
18
+ file: string;
19
+ // Error name
20
+ name?: string;
21
+ // Error message
22
+ message: string;
23
+ // Error stack
24
+ stack?: string;
25
+ // Error detail
26
+ detail: string;
27
+ // Error url
28
+ url: string;
29
+ // Error time
30
+ time?: string;
31
+ }
32
+
33
+ export interface UserInfo {
34
+ id: string | number;
35
+ userId: string | number;
36
+ username: string;
37
+ realname: string;
38
+ avatar: string;
39
+ desc?: string;
40
+ homePath?: string;
41
+ tenantid?: string | number;
42
+ roles: RoleInfo[];
43
+ orgCode?: string;
44
+ }
45
+
46
+ export interface LoginInfo {
47
+ multi_depart?: string | number;
48
+ userInfo?: object;
49
+ departs?: [];
50
+ tenantList?: [];
51
+ isLogin?: boolean;
52
+ }
53
+
54
+ export interface BeforeMiniState {
55
+ menuCollapsed?: boolean;
56
+ menuSplit?: boolean;
57
+ menuMode?: MenuModeEnum;
58
+ menuType?: MenuTypeEnum;
59
+ }
@@ -0,0 +1,5 @@
1
+ import type { ComputedRef, Ref } from 'vue';
2
+
3
+ export type DynamicProps<T> = {
4
+ [P in keyof T]: Ref<T[P]> | T[P] | ComputedRef<T[P]>;
5
+ };
@@ -0,0 +1,47 @@
1
+ import { RoleEnum } from '../src/enums/roleEnum';
2
+
3
+ export {};
4
+
5
+ declare module 'vue-router' {
6
+ interface RouteMeta extends Record<string | number | symbol, unknown> {
7
+ orderNo?: number;
8
+ // title
9
+ title: string;
10
+ // dynamic router level.
11
+ dynamicLevel?: number;
12
+ // dynamic router real route path (For performance).
13
+ realPath?: string;
14
+ // Whether to ignore permissions
15
+ ignoreAuth?: boolean;
16
+ // role info
17
+ roles?: RoleEnum[];
18
+ // Whether not to cache
19
+ ignoreKeepAlive?: boolean;
20
+ // Is it fixed on tab
21
+ affix?: boolean;
22
+ // icon on tab
23
+ icon?: string;
24
+ frameSrc?: string;
25
+ // current page transition
26
+ transitionName?: string;
27
+ // Whether the route has been dynamically added
28
+ hideBreadcrumb?: boolean;
29
+ // Hide submenu
30
+ hideChildrenInMenu?: boolean;
31
+ // Carrying parameters
32
+ carryParam?: boolean;
33
+ // Used internally to mark single-level menus
34
+ single?: boolean;
35
+ // Currently active menu
36
+ currentActiveMenu?: string;
37
+ // Never show in tab
38
+ hideTab?: boolean;
39
+ // Never show in menu
40
+ hideMenu?: boolean;
41
+ isLink?: boolean;
42
+ // only build for Menu
43
+ ignoreRoute?: boolean;
44
+ // Hide path for children
45
+ hidePathForChildren?: boolean;
46
+ }
47
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kengic/vue",
3
- "version": "0.21.4",
3
+ "version": "0.21.5-beta.1",
4
4
  "scripts": {
5
5
  "build": "npm run switch-node-version && rimraf dist && vue-tsc && vite build",
6
6
  "build:dev": "npm run switch-node-version && rimraf dist && vue-tsc && vite build --mode development",
@@ -32,6 +32,7 @@
32
32
  "vue": "3.2.43"
33
33
  },
34
34
  "dependencies": {
35
+ "@ant-design/colors": "6.0.0",
35
36
  "@ant-design/icons-vue": "6.1.0",
36
37
  "@iconify-icons/akar-icons": "1.2.19",
37
38
  "@iconify-icons/ant-design": "1.2.5",
@@ -41,10 +42,14 @@
41
42
  "@iconify-icons/ph": "1.2.5",
42
43
  "@iconify/vue": "4.1.1",
43
44
  "@kengic/pont": "1.2.11",
45
+ "@rys-fe/vite-plugin-theme": "0.8.6",
46
+ "@types/fs-extra": "9.0.13",
47
+ "@types/inquirer": "8.2.5",
44
48
  "@types/lodash-es": "4.17.9",
45
49
  "@types/node": "18.18.4",
46
50
  "@types/semver": "7.5.3",
47
51
  "@types/store": "2.0.3",
52
+ "@vitejs/plugin-legacy": "2.3.1",
48
53
  "@vitejs/plugin-vue": "3.2.0",
49
54
  "@vitejs/plugin-vue-jsx": "1.3.10",
50
55
  "@vueuse/core": "8.9.4",
@@ -53,19 +58,37 @@
53
58
  "axios": "0.26.1",
54
59
  "chalk": "4.1.2",
55
60
  "dayjs": "1.11.10",
61
+ "dotenv": "16.0.3",
56
62
  "filesize": "10.1.0",
63
+ "fs-extra": "10.1.0",
57
64
  "html-to-image": "1.11.11",
65
+ "inquirer": "8.2.5",
58
66
  "less": "4.1.3",
59
67
  "lodash-es": "4.17.21",
68
+ "picocolors": "1.0.0",
60
69
  "pinia": "2.0.12",
61
- "prettier": "2.8.8",
70
+ "prettier": "3.2.5",
62
71
  "rimraf": "3.0.2",
63
72
  "rollup": "2.79.1",
73
+ "rollup-plugin-visualizer": "5.8.3",
64
74
  "semver": "7.5.4",
65
75
  "store": "2.0.12",
66
76
  "tsx": "3.12.3",
67
77
  "typescript": "~4.8.4",
68
78
  "vite": "3.2.5",
79
+ "vite-plugin-compression": "0.5.1",
80
+ "vite-plugin-html": "3.2.0",
81
+ "vite-plugin-imagemin": "0.6.1",
82
+ "vite-plugin-mkcert": "1.10.1",
83
+ "vite-plugin-mock": "2.9.6",
84
+ "vite-plugin-optimize-persist": "0.1.2",
85
+ "vite-plugin-package-config": "0.1.1",
86
+ "vite-plugin-purge-icons": "0.8.2",
87
+ "vite-plugin-pwa": "0.12.8",
88
+ "vite-plugin-style-import": "2.0.0",
89
+ "vite-plugin-svg-icons": "2.0.1",
90
+ "vite-plugin-vue-setup-extend": "0.4.0",
91
+ "vite-plugin-windicss": "1.8.8",
69
92
  "vue": "3.2.43",
70
93
  "vue-router": "4.1.6",
71
94
  "vue-tsc": "1.8.27"