Commit f9cda2e8c0eb173fab17db84852fe411294d0e63
1 parent
913c22c8
chore: release 2.5.2
Showing
8 changed files
with
69 additions
and
43 deletions
CHANGELOG.en_US.md
1 | +## 2.5.2(2021-06-27) | ||
2 | + | ||
3 | +### ⚡ Performance Improvements | ||
4 | + | ||
5 | +- **Icon** Remove the global registration of Icon components to prevent hot update issues under certain circumstances | ||
6 | + | ||
7 | +### ✨ Features | ||
8 | + | ||
9 | +- **Menu** Added `permissionMode=PermissionModeEnum.ROUTE_MAPPING` mode | ||
10 | + - The project is changed to this mode by default, and the original menu file is deleted | ||
11 | + - If you have written the menu before, you can change to `PermissionModeEnum.ROLE` mode | ||
12 | + | ||
1 | ## 2.5.1(2021-06-26) | 13 | ## 2.5.1(2021-06-26) |
2 | 14 | ||
3 | ### ⚡ Performance Improvements | 15 | ### ⚡ Performance Improvements |
CHANGELOG.zh_CN.md
1 | -## Wip | 1 | +## 2.5.2(2021-06-27) |
2 | 2 | ||
3 | ### ⚡ Performance Improvements | 3 | ### ⚡ Performance Improvements |
4 | 4 | ||
@@ -10,6 +10,10 @@ | @@ -10,6 +10,10 @@ | ||
10 | - 项目默认改为该模式,删除原有菜单文件 | 10 | - 项目默认改为该模式,删除原有菜单文件 |
11 | - 如果之前已经写好了菜单,可以更改为`PermissionModeEnum.ROLE`模式即可 | 11 | - 如果之前已经写好了菜单,可以更改为`PermissionModeEnum.ROLE`模式即可 |
12 | 12 | ||
13 | +### 🐛 Bug Fixes | ||
14 | + | ||
15 | +- **Drawer** 修复`visible`状态异常 | ||
16 | + | ||
13 | ## 2.5.1(2021-06-26) | 17 | ## 2.5.1(2021-06-26) |
14 | 18 | ||
15 | ### ⚡ Performance Improvements | 19 | ### ⚡ Performance Improvements |
package.json
1 | { | 1 | { |
2 | "name": "vben-admin", | 2 | "name": "vben-admin", |
3 | - "version": "2.5.1", | 3 | + "version": "2.5.2", |
4 | "author": { | 4 | "author": { |
5 | "name": "vben", | 5 | "name": "vben", |
6 | "email": "anncwb@126.com", | 6 | "email": "anncwb@126.com", |
@@ -38,7 +38,7 @@ | @@ -38,7 +38,7 @@ | ||
38 | "@logicflow/core": "^0.5.0", | 38 | "@logicflow/core": "^0.5.0", |
39 | "@logicflow/extension": "^0.5.0", | 39 | "@logicflow/extension": "^0.5.0", |
40 | "@vueuse/core": "^5.0.3", | 40 | "@vueuse/core": "^5.0.3", |
41 | - "@zxcvbn-ts/core": "^0.3.0", | 41 | + "@zxcvbn-ts/core": "^1.0.0-beta.0", |
42 | "ant-design-vue": "2.2.0-beta.6", | 42 | "ant-design-vue": "2.2.0-beta.6", |
43 | "axios": "^0.21.1", | 43 | "axios": "^0.21.1", |
44 | "codemirror": "^5.62.0", | 44 | "codemirror": "^5.62.0", |
@@ -60,13 +60,13 @@ | @@ -60,13 +60,13 @@ | ||
60 | "vue-i18n": "9.1.6", | 60 | "vue-i18n": "9.1.6", |
61 | "vue-json-pretty": "^2.0.2", | 61 | "vue-json-pretty": "^2.0.2", |
62 | "vue-router": "^4.0.10", | 62 | "vue-router": "^4.0.10", |
63 | - "vue-types": "^3.0.2", | 63 | + "vue-types": "^4.0.0", |
64 | "xlsx": "^0.17.0" | 64 | "xlsx": "^0.17.0" |
65 | }, | 65 | }, |
66 | "devDependencies": { | 66 | "devDependencies": { |
67 | "@commitlint/cli": "^12.1.4", | 67 | "@commitlint/cli": "^12.1.4", |
68 | "@commitlint/config-conventional": "^12.1.4", | 68 | "@commitlint/config-conventional": "^12.1.4", |
69 | - "@iconify/json": "^1.1.360", | 69 | + "@iconify/json": "^1.1.361", |
70 | "@purge-icons/generated": "^0.7.0", | 70 | "@purge-icons/generated": "^0.7.0", |
71 | "@types/codemirror": "^5.60.1", | 71 | "@types/codemirror": "^5.60.1", |
72 | "@types/crypto-js": "^4.0.1", | 72 | "@types/crypto-js": "^4.0.1", |
@@ -76,7 +76,7 @@ | @@ -76,7 +76,7 @@ | ||
76 | "@types/jest": "^26.0.23", | 76 | "@types/jest": "^26.0.23", |
77 | "@types/lodash-es": "^4.17.4", | 77 | "@types/lodash-es": "^4.17.4", |
78 | "@types/mockjs": "^1.0.3", | 78 | "@types/mockjs": "^1.0.3", |
79 | - "@types/node": "^15.12.4", | 79 | + "@types/node": "^15.12.5", |
80 | "@types/nprogress": "^0.2.0", | 80 | "@types/nprogress": "^0.2.0", |
81 | "@types/qrcode": "^1.4.0", | 81 | "@types/qrcode": "^1.4.0", |
82 | "@types/qs": "^6.9.6", | 82 | "@types/qs": "^6.9.6", |
@@ -110,7 +110,7 @@ | @@ -110,7 +110,7 @@ | ||
110 | "lint-staged": "^11.0.0", | 110 | "lint-staged": "^11.0.0", |
111 | "npm-run-all": "^4.1.5", | 111 | "npm-run-all": "^4.1.5", |
112 | "postcss": "^8.3.5", | 112 | "postcss": "^8.3.5", |
113 | - "prettier": "^2.3.1", | 113 | + "prettier": "^2.3.2", |
114 | "pretty-quick": "^3.1.1", | 114 | "pretty-quick": "^3.1.1", |
115 | "rimraf": "^3.0.2", | 115 | "rimraf": "^3.0.2", |
116 | "rollup-plugin-visualizer": "5.5.0", | 116 | "rollup-plugin-visualizer": "5.5.0", |
src/router/helper/routeHelper.ts
@@ -65,8 +65,6 @@ function dynamicImport( | @@ -65,8 +65,6 @@ function dynamicImport( | ||
65 | 65 | ||
66 | // Turn background objects into routing objects | 66 | // Turn background objects into routing objects |
67 | export function transformObjToRoute<T = AppRouteModule>(routeList: AppRouteModule[]): T[] { | 67 | export function transformObjToRoute<T = AppRouteModule>(routeList: AppRouteModule[]): T[] { |
68 | - console.log(routeList); | ||
69 | - | ||
70 | routeList.forEach((route) => { | 68 | routeList.forEach((route) => { |
71 | const component = route.component as string; | 69 | const component = route.component as string; |
72 | if (component) { | 70 | if (component) { |
src/views/sys/login/Login.vue
1 | <template> | 1 | <template> |
2 | <div :class="prefixCls" class="relative w-full h-full px-4"> | 2 | <div :class="prefixCls" class="relative w-full h-full px-4"> |
3 | <AppLocalePicker | 3 | <AppLocalePicker |
4 | - class="absolute top-4 right-4 enter-x text-white xl:text-gray-600" | 4 | + class="absolute text-white top-4 right-4 enter-x xl:text-gray-600" |
5 | :showText="false" | 5 | :showText="false" |
6 | v-if="!sessionTimeout && showLocale" | 6 | v-if="!sessionTimeout && showLocale" |
7 | /> | 7 | /> |
@@ -13,7 +13,7 @@ | @@ -13,7 +13,7 @@ | ||
13 | 13 | ||
14 | <div class="container relative h-full py-2 mx-auto sm:px-10"> | 14 | <div class="container relative h-full py-2 mx-auto sm:px-10"> |
15 | <div class="flex h-full"> | 15 | <div class="flex h-full"> |
16 | - <div class="hidden xl:flex xl:flex-col xl:w-6/12 min-h-full mr-4 pl-4"> | 16 | + <div class="hidden min-h-full pl-4 mr-4 xl:flex xl:flex-col xl:w-6/12"> |
17 | <AppLogo class="-enter-x" /> | 17 | <AppLogo class="-enter-x" /> |
18 | <div class="my-auto"> | 18 | <div class="my-auto"> |
19 | <img | 19 | <img |
@@ -22,33 +22,32 @@ | @@ -22,33 +22,32 @@ | ||
22 | class="w-1/2 -mt-16 -enter-x" | 22 | class="w-1/2 -mt-16 -enter-x" |
23 | /> | 23 | /> |
24 | <div class="mt-10 font-medium text-white -enter-x"> | 24 | <div class="mt-10 font-medium text-white -enter-x"> |
25 | - <span class="mt-4 text-3xl inline-block"> {{ t('sys.login.signInTitle') }}</span> | 25 | + <span class="inline-block mt-4 text-3xl"> {{ t('sys.login.signInTitle') }}</span> |
26 | </div> | 26 | </div> |
27 | - <div class="mt-5 text-md text-white font-normal dark:text-gray-500 -enter-x"> | 27 | + <div class="mt-5 font-normal text-white text-md dark:text-gray-500 -enter-x"> |
28 | {{ t('sys.login.signInDesc') }} | 28 | {{ t('sys.login.signInDesc') }} |
29 | </div> | 29 | </div> |
30 | </div> | 30 | </div> |
31 | </div> | 31 | </div> |
32 | - <div class="h-full xl:h-auto flex py-5 xl:py-0 xl:my-0 w-full xl:w-6/12"> | 32 | + <div class="flex w-full h-full py-5 xl:h-auto xl:py-0 xl:my-0 xl:w-6/12"> |
33 | <div | 33 | <div |
34 | :class="`${prefixCls}-form`" | 34 | :class="`${prefixCls}-form`" |
35 | class=" | 35 | class=" |
36 | - my-auto | ||
37 | - mx-auto | ||
38 | - xl:ml-20 xl:bg-transparent | 36 | + relative |
37 | + w-full | ||
39 | px-5 | 38 | px-5 |
40 | py-8 | 39 | py-8 |
41 | - sm:px-8 | ||
42 | - xl:p-4 | 40 | + mx-auto |
41 | + my-auto | ||
43 | rounded-md | 42 | rounded-md |
44 | shadow-md | 43 | shadow-md |
45 | - xl:shadow-none | ||
46 | - w-full | 44 | + xl:ml-16 xl:bg-transparent |
45 | + sm:px-8 | ||
46 | + xl:p-4 xl:shadow-none | ||
47 | sm:w-3/4 | 47 | sm:w-3/4 |
48 | lg:w-2/4 | 48 | lg:w-2/4 |
49 | xl:w-auto | 49 | xl:w-auto |
50 | enter-x | 50 | enter-x |
51 | - relative | ||
52 | " | 51 | " |
53 | > | 52 | > |
54 | <LoginForm /> | 53 | <LoginForm /> |
@@ -144,6 +143,7 @@ | @@ -144,6 +143,7 @@ | ||
144 | } | 143 | } |
145 | 144 | ||
146 | .@{prefix-cls} { | 145 | .@{prefix-cls} { |
146 | + min-height: 100%; | ||
147 | overflow: hidden; | 147 | overflow: hidden; |
148 | @media (max-width: @screen-xl) { | 148 | @media (max-width: @screen-xl) { |
149 | background-color: #293146; | 149 | background-color: #293146; |
src/views/sys/login/LoginFormTitle.vue
tailwind.config.js
1 | -const { sky: color_sky } = require('tailwindcss/colors'); | 1 | +const { sky: color_sky, ...colors } = require('tailwindcss/colors'); |
2 | 2 | ||
3 | module.exports = { | 3 | module.exports = { |
4 | mode: 'jit', | 4 | mode: 'jit', |
@@ -15,8 +15,8 @@ module.exports = { | @@ -15,8 +15,8 @@ module.exports = { | ||
15 | }, | 15 | }, |
16 | }, | 16 | }, |
17 | colors: { | 17 | colors: { |
18 | - //...colors, | ||
19 | - lightBlue: color_sky, | 18 | + ...colors, |
19 | + sky: color_sky, | ||
20 | primary: { | 20 | primary: { |
21 | DEFAULT: '#0960bd', | 21 | DEFAULT: '#0960bd', |
22 | // dark: primaryColorDark, | 22 | // dark: primaryColorDark, |
yarn.lock
@@ -1189,10 +1189,10 @@ | @@ -1189,10 +1189,10 @@ | ||
1189 | dependencies: | 1189 | dependencies: |
1190 | cross-fetch "^3.0.6" | 1190 | cross-fetch "^3.0.6" |
1191 | 1191 | ||
1192 | -"@iconify/json@^1.1.360": | ||
1193 | - version "1.1.360" | ||
1194 | - resolved "https://registry.npmjs.org/@iconify/json/-/json-1.1.360.tgz#e4ab624d914e7047d03adb7d17a3dac18302906f" | ||
1195 | - integrity sha512-kgKZ1nhznoD9w/tRq9mVpKO1d2/ymlTLHhJ/AGspMnSWDkjLYFPSatl4RXf0o0e1H+YWLvJcMd/sTCHTl7TucA== | 1192 | +"@iconify/json@^1.1.361": |
1193 | + version "1.1.361" | ||
1194 | + resolved "https://registry.yarnpkg.com/@iconify/json/-/json-1.1.361.tgz#6222e7971467cc4a793c7e0bf2877b484827ae36" | ||
1195 | + integrity sha512-p7RMNFNI1YLFCJ0Ads6LOtJyLsheYM+XBSrhcTYxjuCmr2dv2j4DFp0Bh3HLwybtdPo3cA7Xo8Wqk8djvoVm/g== | ||
1196 | 1196 | ||
1197 | "@intlify/core-base@9.1.6": | 1197 | "@intlify/core-base@9.1.6": |
1198 | version "9.1.6" | 1198 | version "9.1.6" |
@@ -1985,10 +1985,10 @@ | @@ -1985,10 +1985,10 @@ | ||
1985 | resolved "https://registry.npmjs.org/@types/node/-/node-14.17.3.tgz#6d327abaa4be34a74e421ed6409a0ae2f47f4c3d" | 1985 | resolved "https://registry.npmjs.org/@types/node/-/node-14.17.3.tgz#6d327abaa4be34a74e421ed6409a0ae2f47f4c3d" |
1986 | integrity sha512-e6ZowgGJmTuXa3GyaPbTGxX17tnThl2aSSizrFthQ7m9uLGZBXiGhgE55cjRZTF5kjZvYn9EOPOMljdjwbflxw== | 1986 | integrity sha512-e6ZowgGJmTuXa3GyaPbTGxX17tnThl2aSSizrFthQ7m9uLGZBXiGhgE55cjRZTF5kjZvYn9EOPOMljdjwbflxw== |
1987 | 1987 | ||
1988 | -"@types/node@^15.12.4": | ||
1989 | - version "15.12.4" | ||
1990 | - resolved "https://registry.yarnpkg.com/@types/node/-/node-15.12.4.tgz#e1cf817d70a1e118e81922c4ff6683ce9d422e26" | ||
1991 | - integrity sha512-zrNj1+yqYF4WskCMOHwN+w9iuD12+dGm0rQ35HLl9/Ouuq52cEtd0CH9qMgrdNmi5ejC1/V7vKEXYubB+65DkA== | 1988 | +"@types/node@^15.12.5": |
1989 | + version "15.12.5" | ||
1990 | + resolved "https://registry.yarnpkg.com/@types/node/-/node-15.12.5.tgz#9a78318a45d75c9523d2396131bd3cca54b2d185" | ||
1991 | + integrity sha512-se3yX7UHv5Bscf8f1ERKvQOD6sTyycH3hdaoozvaLxgUiY5lIGEeH37AD0G0Qi9kPqihPn0HOfd2yaIEN9VwEg== | ||
1992 | 1992 | ||
1993 | "@types/normalize-package-data@^2.4.0": | 1993 | "@types/normalize-package-data@^2.4.0": |
1994 | version "2.4.0" | 1994 | version "2.4.0" |
@@ -2498,10 +2498,10 @@ | @@ -2498,10 +2498,10 @@ | ||
2498 | dependencies: | 2498 | dependencies: |
2499 | vue-demi "*" | 2499 | vue-demi "*" |
2500 | 2500 | ||
2501 | -"@zxcvbn-ts/core@^0.3.0": | ||
2502 | - version "0.3.0" | ||
2503 | - resolved "https://registry.npmjs.org/@zxcvbn-ts/core/-/core-0.3.0.tgz#1a021afef29b97a5f8f72458de005fa149628e32" | ||
2504 | - integrity sha512-H1SOAoC7MbccN/CU9ENZHXwvwTwh6aRt88SOkGROAN9nT88o/qDPJ5B5bElRSbjKLfmmO1LqK2K4u2lUxjbQKQ== | 2501 | +"@zxcvbn-ts/core@^1.0.0-beta.0": |
2502 | + version "1.0.0-beta.0" | ||
2503 | + resolved "https://registry.yarnpkg.com/@zxcvbn-ts/core/-/core-1.0.0-beta.0.tgz#a616beacb83dbfe9174408ebabee746f3468b0ec" | ||
2504 | + integrity sha512-E2rHy2jrCDzJ62xqY5KteOHR+y7uPqL6FLUPVCDZmeYrAZRgB+CpO0QIQKLVrxwssx0YhApmE23eHmouce+OUA== | ||
2505 | 2505 | ||
2506 | JSONStream@^1.0.4: | 2506 | JSONStream@^1.0.4: |
2507 | version "1.3.5" | 2507 | version "1.3.5" |
@@ -6947,6 +6947,11 @@ is-plain-object@3.0.1: | @@ -6947,6 +6947,11 @@ is-plain-object@3.0.1: | ||
6947 | resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.1.tgz#662d92d24c0aa4302407b0d45d21f2251c85f85b" | 6947 | resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.1.tgz#662d92d24c0aa4302407b0d45d21f2251c85f85b" |
6948 | integrity sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g== | 6948 | integrity sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g== |
6949 | 6949 | ||
6950 | +is-plain-object@5.0.0: | ||
6951 | + version "5.0.0" | ||
6952 | + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" | ||
6953 | + integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== | ||
6954 | + | ||
6950 | is-plain-object@^2.0.3, is-plain-object@^2.0.4: | 6955 | is-plain-object@^2.0.3, is-plain-object@^2.0.4: |
6951 | version "2.0.4" | 6956 | version "2.0.4" |
6952 | resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" | 6957 | resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" |
@@ -9600,10 +9605,10 @@ prettier@^1.16.4, prettier@^1.18.2: | @@ -9600,10 +9605,10 @@ prettier@^1.16.4, prettier@^1.18.2: | ||
9600 | resolved "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" | 9605 | resolved "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" |
9601 | integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== | 9606 | integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== |
9602 | 9607 | ||
9603 | -prettier@^2.3.1: | ||
9604 | - version "2.3.1" | ||
9605 | - resolved "https://registry.npmjs.org/prettier/-/prettier-2.3.1.tgz#76903c3f8c4449bc9ac597acefa24dc5ad4cbea6" | ||
9606 | - integrity sha512-p+vNbgpLjif/+D+DwAZAbndtRrR0md0MwfmOVN9N+2RgyACMT+7tfaRnT+WDPkqnuVwleyuBIG2XBxKDme3hPA== | 9608 | +prettier@^2.3.2: |
9609 | + version "2.3.2" | ||
9610 | + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.2.tgz#ef280a05ec253712e486233db5c6f23441e7342d" | ||
9611 | + integrity sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ== | ||
9607 | 9612 | ||
9608 | pretty-bytes@^5.3.0, pretty-bytes@^5.6.0: | 9613 | pretty-bytes@^5.3.0, pretty-bytes@^5.6.0: |
9609 | version "5.6.0" | 9614 | version "5.6.0" |
@@ -12504,13 +12509,20 @@ vue-tsc@^0.2.0: | @@ -12504,13 +12509,20 @@ vue-tsc@^0.2.0: | ||
12504 | dependencies: | 12509 | dependencies: |
12505 | vscode-vue-languageservice "^0.25.22" | 12510 | vscode-vue-languageservice "^0.25.22" |
12506 | 12511 | ||
12507 | -vue-types@^3.0.0, vue-types@^3.0.2: | 12512 | +vue-types@^3.0.0: |
12508 | version "3.0.2" | 12513 | version "3.0.2" |
12509 | resolved "https://registry.npmjs.org/vue-types/-/vue-types-3.0.2.tgz#ec16e05d412c038262fc1efa4ceb9647e7fb601d" | 12514 | resolved "https://registry.npmjs.org/vue-types/-/vue-types-3.0.2.tgz#ec16e05d412c038262fc1efa4ceb9647e7fb601d" |
12510 | integrity sha512-IwUC0Aq2zwaXqy74h4WCvFCUtoV0iSWr0snWnE9TnU18S66GAQyqQbRf2qfJtUuiFsBf6qp0MEwdonlwznlcrw== | 12515 | integrity sha512-IwUC0Aq2zwaXqy74h4WCvFCUtoV0iSWr0snWnE9TnU18S66GAQyqQbRf2qfJtUuiFsBf6qp0MEwdonlwznlcrw== |
12511 | dependencies: | 12516 | dependencies: |
12512 | is-plain-object "3.0.1" | 12517 | is-plain-object "3.0.1" |
12513 | 12518 | ||
12519 | +vue-types@^4.0.0: | ||
12520 | + version "4.0.0" | ||
12521 | + resolved "https://registry.yarnpkg.com/vue-types/-/vue-types-4.0.0.tgz#da13ccca0f979d3cfd076ce3a2b7050a9627ed5a" | ||
12522 | + integrity sha512-CGJ6br+FhK2OFgPzagVQxf6icQ63OVrOFjw+ekmb4bnTgn/FuKkjdlOqybOdq5aot7BF01yPoTczGD+fEMpKRw== | ||
12523 | + dependencies: | ||
12524 | + is-plain-object "5.0.0" | ||
12525 | + | ||
12514 | vue@3.1.2: | 12526 | vue@3.1.2: |
12515 | version "3.1.2" | 12527 | version "3.1.2" |
12516 | resolved "https://registry.yarnpkg.com/vue/-/vue-3.1.2.tgz#647f8e3949a3d600771dca25d50225dc3e594c64" | 12528 | resolved "https://registry.yarnpkg.com/vue/-/vue-3.1.2.tgz#647f8e3949a3d600771dca25d50225dc3e594c64" |