diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..9bf9395 --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +shamefully-hoist = true diff --git a/.prettierignore b/.prettierignore index 2e747f7..e7f8c10 100644 --- a/.prettierignore +++ b/.prettierignore @@ -5,3 +5,4 @@ node_modules dist dist-ssr *.local +.npmrc diff --git a/package.json b/package.json index 5c90e9d..984edf6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "v3-admin-vite", - "version": "3.4.0", + "version": "4.0.0-beta", "description": "一个免费开源的中后台管理系统基础解决方案,基于 Vue3、TypeScript、Element Plus、Pinia 和 Vite 等主流技术.", "author": { "name": "pany", @@ -24,54 +24,54 @@ "test": "vitest" }, "dependencies": { - "@element-plus/icons-vue": "^2.1.0", - "axios": "^1.4.0", - "dayjs": "^1.11.8", - "element-plus": "^2.3.6", - "js-cookie": "^3.0.5", - "lodash-es": "^4.17.21", - "normalize.css": "^8.0.1", - "nprogress": "^0.2.0", - "path-browserify": "^1.0.1", - "path-to-regexp": "^6.2.1", - "pinia": "^2.1.4", - "screenfull": "^6.0.2", - "vue": "^3.3.4", - "vue-router": "^4.2.2", - "vxe-table": "^4.4.2", - "vxe-table-plugin-element": "^3.0.7", - "xe-utils": "^3.5.11" + "@element-plus/icons-vue": "2.1.0", + "axios": "1.4.0", + "dayjs": "1.11.8", + "element-plus": "2.3.6", + "js-cookie": "3.0.5", + "lodash-es": "4.17.21", + "normalize.css": "8.0.1", + "nprogress": "0.2.0", + "path-browserify": "1.0.1", + "path-to-regexp": "6.2.1", + "pinia": "2.1.4", + "screenfull": "6.0.2", + "vue": "3.3.4", + "vue-router": "4.2.2", + "vxe-table": "4.4.2", + "vxe-table-plugin-element": "3.0.7", + "xe-utils": "3.5.11" }, "devDependencies": { - "@types/js-cookie": "^3.0.3", - "@types/lodash-es": "^4.17.7", - "@types/node": "^20.3.1", - "@types/nprogress": "^0.2.0", - "@types/path-browserify": "^1.0.0", - "@typescript-eslint/eslint-plugin": "^5.59.11", - "@typescript-eslint/parser": "^5.59.11", - "@vitejs/plugin-vue": "^4.2.3", - "@vitejs/plugin-vue-jsx": "^3.0.1", - "@vue/eslint-config-prettier": "^7.1.0", - "@vue/eslint-config-typescript": "^11.0.3", - "@vue/test-utils": "^2.3.2", - "eslint": "^8.42.0", - "eslint-plugin-prettier": "^4.2.1", - "eslint-plugin-vue": "^9.14.1", - "husky": "^8.0.3", - "jsdom": "^22.1.0", - "lint-staged": "^13.2.2", - "prettier": "^2.8.8", - "sass": "^1.63.4", - "terser": "^5.18.0", - "typescript": "^5.1.3", - "unocss": "^0.53.1", - "vite": "^4.3.9", - "vite-plugin-svg-icons": "^2.0.1", - "vite-svg-loader": "^4.0.0", - "vitest": "^0.32.0", - "vue-eslint-parser": "^9.3.1", - "vue-tsc": "^1.6.5" + "@types/js-cookie": "3.0.3", + "@types/lodash-es": "4.17.7", + "@types/node": "20.3.1", + "@types/nprogress": "0.2.0", + "@types/path-browserify": "1.0.0", + "@typescript-eslint/eslint-plugin": "5.59.11", + "@typescript-eslint/parser": "5.59.11", + "@vitejs/plugin-vue": "4.2.3", + "@vitejs/plugin-vue-jsx": "3.0.1", + "@vue/eslint-config-prettier": "7.1.0", + "@vue/eslint-config-typescript": "11.0.3", + "@vue/test-utils": "2.3.2", + "eslint": "8.42.0", + "eslint-plugin-prettier": "4.2.1", + "eslint-plugin-vue": "9.14.1", + "husky": "8.0.3", + "jsdom": "22.1.0", + "lint-staged": "13.2.2", + "prettier": "2.8.8", + "sass": "1.63.4", + "terser": "5.18.0", + "typescript": "5.1.3", + "unocss": "0.53.1", + "vite": "4.3.9", + "vite-plugin-svg-icons": "2.0.1", + "vite-svg-loader": "4.0.0", + "vitest": "0.32.0", + "vue-eslint-parser": "9.3.1", + "vue-tsc": "1.6.5" }, "lint-staged": { "*.{vue,js,jsx,ts,tsx}": [ @@ -83,9 +83,6 @@ ], "package.json": [ "prettier --write" - ], - "{!(package)*.json,.!(browserslist)*rc}": [ - "prettier --write--parser json" ] }, "keywords": [ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8b94a3a..42939f8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,144 +6,144 @@ settings: dependencies: '@element-plus/icons-vue': - specifier: ^2.1.0 + specifier: 2.1.0 version: 2.1.0(vue@3.3.4) axios: - specifier: ^1.4.0 + specifier: 1.4.0 version: 1.4.0 dayjs: - specifier: ^1.11.8 + specifier: 1.11.8 version: 1.11.8 element-plus: - specifier: ^2.3.6 + specifier: 2.3.6 version: 2.3.6(vue@3.3.4) js-cookie: - specifier: ^3.0.5 + specifier: 3.0.5 version: 3.0.5 lodash-es: - specifier: ^4.17.21 + specifier: 4.17.21 version: 4.17.21 normalize.css: - specifier: ^8.0.1 + specifier: 8.0.1 version: 8.0.1 nprogress: - specifier: ^0.2.0 + specifier: 0.2.0 version: 0.2.0 path-browserify: - specifier: ^1.0.1 + specifier: 1.0.1 version: 1.0.1 path-to-regexp: - specifier: ^6.2.1 + specifier: 6.2.1 version: 6.2.1 pinia: - specifier: ^2.1.4 + specifier: 2.1.4 version: 2.1.4(typescript@5.1.3)(vue@3.3.4) screenfull: - specifier: ^6.0.2 + specifier: 6.0.2 version: 6.0.2 vue: - specifier: ^3.3.4 + specifier: 3.3.4 version: 3.3.4 vue-router: - specifier: ^4.2.2 + specifier: 4.2.2 version: 4.2.2(vue@3.3.4) vxe-table: - specifier: ^4.4.2 + specifier: 4.4.2 version: 4.4.2(vue@3.3.4)(xe-utils@3.5.11) vxe-table-plugin-element: - specifier: ^3.0.7 + specifier: 3.0.7 version: 3.0.7(vxe-table@4.4.2) xe-utils: - specifier: ^3.5.11 + specifier: 3.5.11 version: 3.5.11 devDependencies: '@types/js-cookie': - specifier: ^3.0.3 + specifier: 3.0.3 version: 3.0.3 '@types/lodash-es': - specifier: ^4.17.7 + specifier: 4.17.7 version: 4.17.7 '@types/node': - specifier: ^20.3.1 + specifier: 20.3.1 version: 20.3.1 '@types/nprogress': - specifier: ^0.2.0 + specifier: 0.2.0 version: 0.2.0 '@types/path-browserify': - specifier: ^1.0.0 + specifier: 1.0.0 version: 1.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^5.59.11 + specifier: 5.59.11 version: 5.59.11(@typescript-eslint/parser@5.59.11)(eslint@8.42.0)(typescript@5.1.3) '@typescript-eslint/parser': - specifier: ^5.59.11 + specifier: 5.59.11 version: 5.59.11(eslint@8.42.0)(typescript@5.1.3) '@vitejs/plugin-vue': - specifier: ^4.2.3 + specifier: 4.2.3 version: 4.2.3(vite@4.3.9)(vue@3.3.4) '@vitejs/plugin-vue-jsx': - specifier: ^3.0.1 + specifier: 3.0.1 version: 3.0.1(vite@4.3.9)(vue@3.3.4) '@vue/eslint-config-prettier': - specifier: ^7.1.0 + specifier: 7.1.0 version: 7.1.0(eslint@8.42.0)(prettier@2.8.8) '@vue/eslint-config-typescript': - specifier: ^11.0.3 + specifier: 11.0.3 version: 11.0.3(eslint-plugin-vue@9.14.1)(eslint@8.42.0)(typescript@5.1.3) '@vue/test-utils': - specifier: ^2.3.2 + specifier: 2.3.2 version: 2.3.2(vue@3.3.4) eslint: - specifier: ^8.42.0 + specifier: 8.42.0 version: 8.42.0 eslint-plugin-prettier: - specifier: ^4.2.1 + specifier: 4.2.1 version: 4.2.1(eslint-config-prettier@8.8.0)(eslint@8.42.0)(prettier@2.8.8) eslint-plugin-vue: - specifier: ^9.14.1 + specifier: 9.14.1 version: 9.14.1(eslint@8.42.0) husky: - specifier: ^8.0.3 + specifier: 8.0.3 version: 8.0.3 jsdom: - specifier: ^22.1.0 + specifier: 22.1.0 version: 22.1.0 lint-staged: - specifier: ^13.2.2 + specifier: 13.2.2 version: 13.2.2 prettier: - specifier: ^2.8.8 + specifier: 2.8.8 version: 2.8.8 sass: - specifier: ^1.63.4 + specifier: 1.63.4 version: 1.63.4 terser: - specifier: ^5.18.0 + specifier: 5.18.0 version: 5.18.0 typescript: - specifier: ^5.1.3 + specifier: 5.1.3 version: 5.1.3 unocss: - specifier: ^0.53.1 + specifier: 0.53.1 version: 0.53.1(postcss@8.4.24)(vite@4.3.9) vite: - specifier: ^4.3.9 + specifier: 4.3.9 version: 4.3.9(@types/node@20.3.1)(sass@1.63.4)(terser@5.18.0) vite-plugin-svg-icons: - specifier: ^2.0.1 + specifier: 2.0.1 version: 2.0.1(vite@4.3.9) vite-svg-loader: - specifier: ^4.0.0 + specifier: 4.0.0 version: 4.0.0 vitest: - specifier: ^0.32.0 + specifier: 0.32.0 version: 0.32.0(jsdom@22.1.0)(sass@1.63.4)(terser@5.18.0) vue-eslint-parser: - specifier: ^9.3.1 + specifier: 9.3.1 version: 9.3.1(eslint@8.42.0) vue-tsc: - specifier: ^1.6.5 + specifier: 1.6.5 version: 1.6.5(typescript@5.1.3) packages: @@ -228,7 +228,7 @@ packages: '@babel/compat-data': 7.22.5 '@babel/core': 7.22.5 '@babel/helper-validator-option': 7.22.5 - browserslist: 4.21.8 + browserslist: 4.21.9 lru-cache: 5.1.1 semver: 6.3.0 dev: true @@ -925,7 +925,7 @@ packages: grapheme-splitter: 1.0.4 ignore: 5.2.4 natural-compare-lite: 1.4.0 - semver: 7.5.1 + semver: 7.5.2 tsutils: 3.21.0(typescript@5.1.3) typescript: 5.1.3 transitivePeerDependencies: @@ -999,7 +999,7 @@ packages: debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 - semver: 7.5.1 + semver: 7.5.2 tsutils: 3.21.0(typescript@5.1.3) typescript: 5.1.3 transitivePeerDependencies: @@ -1020,7 +1020,7 @@ packages: '@typescript-eslint/typescript-estree': 5.59.11(typescript@5.1.3) eslint: 8.42.0 eslint-scope: 5.1.1 - semver: 7.5.1 + semver: 7.5.2 transitivePeerDependencies: - supports-color - typescript @@ -1756,15 +1756,15 @@ packages: fill-range: 7.0.1 dev: true - /browserslist@4.21.8: - resolution: {integrity: sha512-j+7xYe+v+q2Id9qbBeCI8WX5NmZSRe8es1+0xntD/+gaWXznP8tFEkv5IgSaHf5dS1YwVMbX/4W6m937mj+wQw==} + /browserslist@4.21.9: + resolution: {integrity: sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: caniuse-lite: 1.0.30001503 - electron-to-chromium: 1.4.431 + electron-to-chromium: 1.4.432 node-releases: 2.0.12 - update-browserslist-db: 1.0.11(browserslist@4.21.8) + update-browserslist-db: 1.0.11(browserslist@4.21.9) dev: true /buffer-from@1.1.2: @@ -1984,7 +1984,7 @@ packages: js-string-escape: 1.0.1 lodash: 4.17.21 md5-hex: 3.0.1 - semver: 7.5.1 + semver: 7.5.2 well-known-symbols: 2.0.0 dev: true @@ -2318,8 +2318,8 @@ packages: sigmund: 1.0.1 dev: true - /electron-to-chromium@1.4.431: - resolution: {integrity: sha512-m232JTVmCawA2vG+1azVxhKZ9Sv1Q//xxNv5PkP5rWxGgQE8c3CiZFrh8Xnp+d1NmNxlu3QQrGIfdeW5TtXX5w==} + /electron-to-chromium@1.4.432: + resolution: {integrity: sha512-yz3U/khQgAFT2HURJA3/F4fKIyO2r5eK09BQzBZFd6BvBSSaRuzKc2ZNBHtJcO75/EKiRYbVYJZ2RB0P4BuD2g==} dev: true /element-plus@2.3.6(vue@3.3.4): @@ -2459,7 +2459,7 @@ packages: natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 6.0.13 - semver: 7.5.1 + semver: 7.5.2 vue-eslint-parser: 9.3.1(eslint@8.42.0) xml-name-validator: 4.0.0 transitivePeerDependencies: @@ -4245,8 +4245,8 @@ packages: hasBin: true dev: true - /semver@7.5.1: - resolution: {integrity: sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==} + /semver@7.5.2: + resolution: {integrity: sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ==} engines: {node: '>=10'} hasBin: true dependencies: @@ -4802,13 +4802,13 @@ packages: isobject: 3.0.1 dev: true - /update-browserslist-db@1.0.11(browserslist@4.21.8): + /update-browserslist-db@1.0.11(browserslist@4.21.9): resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' dependencies: - browserslist: 4.21.8 + browserslist: 4.21.9 escalade: 3.1.1 picocolors: 1.0.0 dev: true @@ -5020,7 +5020,7 @@ packages: espree: 9.5.2 esquery: 1.5.0 lodash: 4.17.21 - semver: 7.5.1 + semver: 7.5.2 transitivePeerDependencies: - supports-color dev: true @@ -5049,7 +5049,7 @@ packages: dependencies: '@volar/vue-language-core': 1.6.5 '@volar/vue-typescript': 1.6.5(typescript@5.1.3) - semver: 7.5.1 + semver: 7.5.2 typescript: 5.1.3 dev: true diff --git a/types/element-plus.d.ts b/types/element-plus.d.ts deleted file mode 100644 index 8053791..0000000 --- a/types/element-plus.d.ts +++ /dev/null @@ -1,116 +0,0 @@ -/** - * Copy https://github.com/element-plus/element-plus/blob/dev/global.d.ts - * 为了解决某些依赖(比如 vxe-table 4.2.7-beta.0 ~ 4.3.11 和 vue-router 4.2.0)导致的没有 Element Plus 组件类型提示的问题 - */ - -declare module "vue" { - export interface GlobalComponents { - ElAffix: typeof import("element-plus")["ElAffix"] - ElAlert: typeof import("element-plus")["ElAlert"] - ElAside: typeof import("element-plus")["ElAside"] - ElAutocomplete: typeof import("element-plus")["ElAutocomplete"] - ElAvatar: typeof import("element-plus")["ElAvatar"] - ElBacktop: typeof import("element-plus")["ElBacktop"] - ElBadge: typeof import("element-plus")["ElBadge"] - ElBreadcrumb: typeof import("element-plus")["ElBreadcrumb"] - ElBreadcrumbItem: typeof import("element-plus")["ElBreadcrumbItem"] - ElButton: typeof import("element-plus")["ElButton"] - ElButtonGroup: typeof import("element-plus")["ElButtonGroup"] - ElCalendar: typeof import("element-plus")["ElCalendar"] - ElCard: typeof import("element-plus")["ElCard"] - ElCarousel: typeof import("element-plus")["ElCarousel"] - ElCarouselItem: typeof import("element-plus")["ElCarouselItem"] - ElCascader: typeof import("element-plus")["ElCascader"] - ElCascaderPanel: typeof import("element-plus")["ElCascaderPanel"] - ElCheckbox: typeof import("element-plus")["ElCheckbox"] - ElCheckboxButton: typeof import("element-plus")["ElCheckboxButton"] - ElCheckboxGroup: typeof import("element-plus")["ElCheckboxGroup"] - ElCol: typeof import("element-plus")["ElCol"] - ElCollapse: typeof import("element-plus")["ElCollapse"] - ElCollapseItem: typeof import("element-plus")["ElCollapseItem"] - ElCollapseTransition: typeof import("element-plus")["ElCollapseTransition"] - ElColorPicker: typeof import("element-plus")["ElColorPicker"] - ElContainer: typeof import("element-plus")["ElContainer"] - ElConfigProvider: typeof import("element-plus")["ElConfigProvider"] - ElDatePicker: typeof import("element-plus")["ElDatePicker"] - ElDialog: typeof import("element-plus")["ElDialog"] - ElDivider: typeof import("element-plus")["ElDivider"] - ElDrawer: typeof import("element-plus")["ElDrawer"] - ElDropdown: typeof import("element-plus")["ElDropdown"] - ElDropdownItem: typeof import("element-plus")["ElDropdownItem"] - ElDropdownMenu: typeof import("element-plus")["ElDropdownMenu"] - ElEmpty: typeof import("element-plus")["ElEmpty"] - ElFooter: typeof import("element-plus")["ElFooter"] - ElForm: typeof import("element-plus")["ElForm"] - ElFormItem: typeof import("element-plus")["ElFormItem"] - ElHeader: typeof import("element-plus")["ElHeader"] - ElIcon: typeof import("element-plus")["ElIcon"] - ElImage: typeof import("element-plus")["ElImage"] - ElImageViewer: typeof import("element-plus")["ElImageViewer"] - ElInput: typeof import("element-plus")["ElInput"] - ElInputNumber: typeof import("element-plus")["ElInputNumber"] - ElLink: typeof import("element-plus")["ElLink"] - ElMain: typeof import("element-plus")["ElMain"] - ElMenu: typeof import("element-plus")["ElMenu"] - ElMenuItem: typeof import("element-plus")["ElMenuItem"] - ElMenuItemGroup: typeof import("element-plus")["ElMenuItemGroup"] - ElOption: typeof import("element-plus")["ElOption"] - ElOptionGroup: typeof import("element-plus")["ElOptionGroup"] - ElPageHeader: typeof import("element-plus")["ElPageHeader"] - ElPagination: typeof import("element-plus")["ElPagination"] - ElPopconfirm: typeof import("element-plus")["ElPopconfirm"] - ElPopper: typeof import("element-plus")["ElPopper"] - ElPopover: typeof import("element-plus")["ElPopover"] - ElProgress: typeof import("element-plus")["ElProgress"] - ElRadio: typeof import("element-plus")["ElRadio"] - ElRadioButton: typeof import("element-plus")["ElRadioButton"] - ElRadioGroup: typeof import("element-plus")["ElRadioGroup"] - ElRate: typeof import("element-plus")["ElRate"] - ElRow: typeof import("element-plus")["ElRow"] - ElScrollbar: typeof import("element-plus")["ElScrollbar"] - ElSelect: typeof import("element-plus")["ElSelect"] - ElSlider: typeof import("element-plus")["ElSlider"] - ElStep: typeof import("element-plus")["ElStep"] - ElSteps: typeof import("element-plus")["ElSteps"] - ElSubMenu: typeof import("element-plus")["ElSubMenu"] - ElSwitch: typeof import("element-plus")["ElSwitch"] - ElTabPane: typeof import("element-plus")["ElTabPane"] - ElTable: typeof import("element-plus")["ElTable"] - ElTableColumn: typeof import("element-plus")["ElTableColumn"] - ElTabs: typeof import("element-plus")["ElTabs"] - ElTag: typeof import("element-plus")["ElTag"] - ElText: typeof import("element-plus")["ElText"] - ElTimePicker: typeof import("element-plus")["ElTimePicker"] - ElTimeSelect: typeof import("element-plus")["ElTimeSelect"] - ElTimeline: typeof import("element-plus")["ElTimeline"] - ElTimelineItem: typeof import("element-plus")["ElTimelineItem"] - ElTooltip: typeof import("element-plus")["ElTooltip"] - ElTransfer: typeof import("element-plus")["ElTransfer"] - ElTree: typeof import("element-plus")["ElTree"] - ElTreeV2: typeof import("element-plus")["ElTreeV2"] - ElTreeSelect: typeof import("element-plus")["ElTreeSelect"] - ElUpload: typeof import("element-plus")["ElUpload"] - ElSpace: typeof import("element-plus")["ElSpace"] - ElSkeleton: typeof import("element-plus")["ElSkeleton"] - ElSkeletonItem: typeof import("element-plus")["ElSkeletonItem"] - ElStatistic: typeof import("element-plus")["ElStatistic"] - ElCheckTag: typeof import("element-plus")["ElCheckTag"] - ElDescriptions: typeof import("element-plus")["ElDescriptions"] - ElDescriptionsItem: typeof import("element-plus")["ElDescriptionsItem"] - ElResult: typeof import("element-plus")["ElResult"] - ElSelectV2: typeof import("element-plus")["ElSelectV2"] - } - - interface ComponentCustomProperties { - $message: typeof import("element-plus")["ElMessage"] - $notify: typeof import("element-plus")["ElNotification"] - $msgbox: typeof import("element-plus")["ElMessageBox"] - $messageBox: typeof import("element-plus")["ElMessageBox"] - $alert: typeof import("element-plus")["ElMessageBox"]["alert"] - $confirm: typeof import("element-plus")["ElMessageBox"]["confirm"] - $prompt: typeof import("element-plus")["ElMessageBox"]["prompt"] - $loading: typeof import("element-plus")["ElLoadingService"] - } -} - -export {}