Template
1
0
mirror of https://github.com/un-pany/v3-admin-vite.git synced 2025-04-21 11:29:20 +08:00

fix: 启用 pnpm shamefully-hoist 配置,用以修复 vue 组件和 element plus 组件没有类型提示的问题

This commit is contained in:
pany 2023-06-16 13:21:01 +08:00
parent 1a6c2f174e
commit 53694a35be
5 changed files with 113 additions and 230 deletions

1
.npmrc Normal file
View File

@ -0,0 +1 @@
shamefully-hoist = true

View File

@ -5,3 +5,4 @@ node_modules
dist
dist-ssr
*.local
.npmrc

View File

@ -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": [

128
pnpm-lock.yaml generated
View File

@ -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

View File

@ -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 {}