commit
5f4f13d266
22 changed files with 2235 additions and 0 deletions
-
1.env
-
24.gitignore
-
9.prettierrc
-
3.vscode/extensions.json
-
66README.md
-
12index.html
-
1345package-lock.json
-
22package.json
-
9src/App.vue
-
17src/api/index.js
-
0src/assets/scss/globalMixin.scss
-
1src/assets/scss/globalVar.scss
-
33src/components/Count.vue
-
7src/main.js
-
11src/router/index.js
-
38src/service/index.js
-
132src/service/request.js
-
6src/store/index.js
-
27src/store/modules/count.js
-
0src/style.scss
-
24vite.config.js
-
448yarn.lock
@ -0,0 +1 @@ |
|||
VITE_BASE_URL=http://127.0.0.1:8080/ |
@ -0,0 +1,24 @@ |
|||
# Logs |
|||
logs |
|||
*.log |
|||
npm-debug.log* |
|||
yarn-debug.log* |
|||
yarn-error.log* |
|||
pnpm-debug.log* |
|||
lerna-debug.log* |
|||
|
|||
node_modules |
|||
dist |
|||
dist-ssr |
|||
*.local |
|||
|
|||
# Editor directories and files |
|||
.vscode/* |
|||
!.vscode/extensions.json |
|||
.idea |
|||
.DS_Store |
|||
*.suo |
|||
*.ntvs* |
|||
*.njsproj |
|||
*.sln |
|||
*.sw? |
@ -0,0 +1,9 @@ |
|||
{ |
|||
"semi": false, |
|||
"singleQuote": true, |
|||
"printWidth": 80, |
|||
"trailingComma": "all", |
|||
"arrowParens": "avoid", |
|||
"tabWidth": 2, |
|||
"endOfLine": "lf" |
|||
} |
@ -0,0 +1,3 @@ |
|||
{ |
|||
"recommendations": ["Vue.volar", "Vue.vscode-typescript-vue-plugin"] |
|||
} |
@ -0,0 +1,66 @@ |
|||
# 技术选型 |
|||
|
|||
- 本项目采用的 vue3 + vite + js 脚手架搭建 |
|||
- 包管理工具为 Yarn |
|||
|
|||
# 代码规范 |
|||
|
|||
> 随着团队的不断扩大,每个人都有自己的 coding 风格,但是如果一个项目中的代码存在多种风格,那对于代码的可维护性和可读性都大大减少,所以说一个项目规范对于前端团队来说很重要。 |
|||
|
|||
## Prettier |
|||
|
|||
1、vscode插件 --- Prettier - Code formatter |
|||
2、.prettierrc文件 |
|||
|
|||
# 全局状态管理 |
|||
|
|||
> 使用 pinia |
|||
|
|||
# UI 框架 |
|||
|
|||
https://tdesign.tencent.com/ |
|||
|
|||
- 桌面端 |
|||
- Vue Next for Web |
|||
- https://tdesign.tencent.com/vue-next/getting-started |
|||
- 移动端 |
|||
- Vue3 for Mobile |
|||
- https://tdesign.tencent.com/mobile-vue/getting-started |
|||
|
|||
# axios 封装 |
|||
|
|||
> src/service |
|||
|
|||
- 灵活的拦截器; |
|||
- 可以创建多个实例,灵活根据项目进行调整; |
|||
- 每个实例,或者说每个接口都可以灵活配置请求头、超时时间等; |
|||
- 取消请求(可以根据 url 取消单个请求也可以取消全部请求)。 |
|||
|
|||
# 项目结构 |
|||
|
|||
```javascript |
|||
├─node_modules // 依赖包 |
|||
├─public |
|||
└─src |
|||
├─api // 请求方法 |
|||
├─assets // 静态资源 |
|||
│ └─scss // scss文件 |
|||
| └─globalMixin.scss // 全局mixin |
|||
| └─globalVar.scss // 全局样式变量 |
|||
├─components // 组件 |
|||
├─router // 路由 |
|||
├─service // 封装的工具类 |
|||
├─store // 全局状态管理 |
|||
│ └─modules // 分modules |
|||
├─views // 视图 |
|||
├─App.vue // 项目根组件 |
|||
├─main.js // 项目入口 |
|||
└─style.scss // 全局样式 |
|||
``` |
|||
|
|||
# 启动方式 |
|||
|
|||
```bash |
|||
yarn |
|||
yarn dev |
|||
``` |
@ -0,0 +1,12 @@ |
|||
<!DOCTYPE html> |
|||
<html lang="en"> |
|||
<head> |
|||
<meta charset="UTF-8" /> |
|||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> |
|||
<title>Vite + Vue</title> |
|||
</head> |
|||
<body> |
|||
<div id="app"></div> |
|||
<script type="module" src="/src/main.js"></script> |
|||
</body> |
|||
</html> |
1345
package-lock.json
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,22 @@ |
|||
{ |
|||
"name": "dreamworks-frontend-template", |
|||
"private": true, |
|||
"version": "0.0.0", |
|||
"type": "module", |
|||
"scripts": { |
|||
"dev": "vite", |
|||
"build": "vite build", |
|||
"preview": "vite preview" |
|||
}, |
|||
"dependencies": { |
|||
"axios": "^1.3.4", |
|||
"pinia": "^2.0.32", |
|||
"vue": "^3.2.45", |
|||
"vue-router": "^4.0.13" |
|||
}, |
|||
"devDependencies": { |
|||
"@vitejs/plugin-vue": "^4.0.0", |
|||
"sass": "^1.58.3", |
|||
"vite": "^4.1.0" |
|||
} |
|||
} |
@ -0,0 +1,9 @@ |
|||
<script setup> |
|||
import Count from 'cpns/Count' |
|||
</script> |
|||
|
|||
<template> |
|||
<Count /> |
|||
</template> |
|||
|
|||
<style scoped></style> |
@ -0,0 +1,17 @@ |
|||
import request from '@/service' |
|||
|
|||
export const get15DaysWeatherByArea = data => { |
|||
return request({ |
|||
url: '/api/common/weather/get15DaysWeatherByArea', |
|||
method: 'GET', |
|||
data, |
|||
interceptors: { |
|||
requestInterceptors(res) { |
|||
return res |
|||
}, |
|||
responseInterceptors(result) { |
|||
return result |
|||
}, |
|||
}, |
|||
}) |
|||
} |
@ -0,0 +1 @@ |
|||
$bg-color: #1989fa; |
@ -0,0 +1,33 @@ |
|||
<template> |
|||
<div class="bg"> |
|||
<span>当前数值{{ countComputed }}</span> |
|||
<br /> |
|||
<span>双倍数值{{ doubleCount }}</span> |
|||
<br /> |
|||
<button type="primary" size="default" @click="countStore.countAdd"> |
|||
+1 |
|||
</button> |
|||
<button type="primary" size="default" @click="countStore.countReduce"> |
|||
-1 |
|||
</button> |
|||
</div> |
|||
</template> |
|||
<script setup> |
|||
import { computed, onMounted } from 'vue' |
|||
import { get15DaysWeatherByArea } from '@/api' |
|||
import { useCountStore } from '@/store' |
|||
import { storeToRefs } from 'pinia' |
|||
const countStore = useCountStore() |
|||
// 通过计算属性 |
|||
const countComputed = computed(() => countStore.count) |
|||
// 通过 storeToRefs api 结构 |
|||
const { doubleCount } = storeToRefs(countStore) |
|||
onMounted(() => { |
|||
get15DaysWeatherByArea() |
|||
}) |
|||
</script> |
|||
<style scoped lang="scss"> |
|||
.bg { |
|||
background: $bg-color; |
|||
} |
|||
</style> |
@ -0,0 +1,7 @@ |
|||
import { createApp } from 'vue' |
|||
import router from './router' |
|||
import store from './store' |
|||
import App from './App.vue' |
|||
import './style.scss' |
|||
|
|||
createApp(App).use(router).use(store).mount('#app') |
@ -0,0 +1,11 @@ |
|||
import { createRouter, createWebHistory } from 'vue-router' |
|||
|
|||
// 配置路由信息
|
|||
const routes = [] |
|||
|
|||
const router = createRouter({ |
|||
routes, |
|||
history: createWebHistory(), |
|||
}) |
|||
|
|||
export default router |
@ -0,0 +1,38 @@ |
|||
import Request from './request' |
|||
/** |
|||
* 后续封装get post delete等方法的简单调用。 |
|||
*/ |
|||
|
|||
const request = new Request({ |
|||
baseURL: import.meta.env.BASE_URL, |
|||
timeout: 1000 * 60 * 5, |
|||
interceptors: { |
|||
// 请求拦截器
|
|||
requestInterceptors: config => config, |
|||
// 响应拦截器
|
|||
responseInterceptors: result => result, |
|||
}, |
|||
}) |
|||
|
|||
/** |
|||
* @description: 函数的描述 |
|||
* @param config 不管是GET还是POST请求都使用data |
|||
* @returns {Promise} |
|||
*/ |
|||
const dreamworkRequest = config => { |
|||
const { method = 'GET' } = config |
|||
if (method === 'get' || method === 'GET') { |
|||
config.params = config.data |
|||
} |
|||
return request.request(config) |
|||
} |
|||
// 取消请求
|
|||
export const cancelRequest = url => { |
|||
return request.cancelRequest(url) |
|||
} |
|||
// 取消全部请求
|
|||
export const cancelAllRequest = () => { |
|||
return request.cancelAllRequest() |
|||
} |
|||
|
|||
export default dreamworkRequest |
@ -0,0 +1,132 @@ |
|||
import axios from 'axios' |
|||
|
|||
class Request { |
|||
// axios 实例
|
|||
instance |
|||
// 拦截器对象
|
|||
interceptorsObj |
|||
|
|||
/* |
|||
存放取消方法的集合 |
|||
* 在创建请求后将取消请求方法 push 到该集合中 |
|||
* 封装一个方法,可以取消请求,传入 url: string|string[] |
|||
* 在请求之前判断同一URL是否存在,如果存在就取消请求 |
|||
*/ |
|||
cancelRequestSourceList |
|||
/* |
|||
存放所有请求URL的集合 |
|||
* 请求之前需要将url push到该集合中 |
|||
* 请求完毕后将url从集合中删除 |
|||
* 添加在发送请求之前完成,删除在响应之后删除 |
|||
*/ |
|||
requestUrlList |
|||
|
|||
constructor(config) { |
|||
this.requestUrlList = [] |
|||
this.cancelRequestSourceList = [] |
|||
this.instance = axios.create(config) |
|||
this.interceptorsObj = config.interceptors |
|||
// 拦截器执行顺序 接口请求 -> 实例请求 -> 全局请求 -> 实例响应 -> 全局响应 -> 接口响应
|
|||
this.instance.interceptors.request.use( |
|||
res => res, |
|||
err => err, |
|||
) |
|||
|
|||
// 使用实例拦截器
|
|||
this.instance.interceptors.request.use( |
|||
this.interceptorsObj?.requestInterceptors, |
|||
this.interceptorsObj?.requestInterceptorsCatch, |
|||
) |
|||
this.instance.interceptors.response.use( |
|||
this.interceptorsObj?.responseInterceptors, |
|||
this.interceptorsObj?.responseInterceptorsCatch, |
|||
) |
|||
// 全局响应拦截器保证最后执行
|
|||
this.instance.interceptors.response.use( |
|||
// 因为我们接口的数据都在res.data下,所以我们直接返回res.data
|
|||
res => { |
|||
return res.data |
|||
}, |
|||
err => err, |
|||
) |
|||
} |
|||
/** |
|||
* @description: 获取指定 url 在 cancelRequestSourceList 中的索引 |
|||
* @param {string} url |
|||
* @returns {number} 索引位置 |
|||
*/ |
|||
getSourceIndex(url) { |
|||
return this.cancelRequestSourceList?.findIndex(item => { |
|||
return Object.keys(item)[0] === url |
|||
}) |
|||
} |
|||
/** |
|||
* @description: 删除 requestUrlList 和 cancelRequestSourceList |
|||
* @param {string} url |
|||
* @returns {*} |
|||
*/ |
|||
delUrl(url) { |
|||
const urlIndex = this.requestUrlList?.findIndex(u => u === url) |
|||
const sourceIndex = this.getSourceIndex(url) |
|||
// 删除url和cancel方法
|
|||
urlIndex !== -1 && this.requestUrlList?.splice(urlIndex, 1) |
|||
sourceIndex !== -1 && this.cancelRequestSourceList?.splice(sourceIndex, 1) |
|||
} |
|||
request(config) { |
|||
return new Promise((resolve, reject) => { |
|||
// 如果我们为单个请求设置拦截器,这里使用单个请求的拦截器
|
|||
if (config.interceptors?.requestInterceptors) { |
|||
config = config.interceptors.requestInterceptors(config) |
|||
} |
|||
const url = config.url |
|||
// url存在保存取消请求方法和当前请求url
|
|||
if (url) { |
|||
this.requestUrlList?.push(url) |
|||
config.cancelToken = new axios.CancelToken(c => { |
|||
this.cancelRequestSourceList?.push({ |
|||
[url]: c, |
|||
}) |
|||
}) |
|||
} |
|||
this.instance |
|||
.request(config) |
|||
.then(res => { |
|||
// 如果我们为单个响应设置拦截器,这里使用单个响应的拦截器
|
|||
if (config.interceptors?.responseInterceptors) { |
|||
res = config.interceptors.responseInterceptors.res |
|||
} |
|||
|
|||
resolve(res) |
|||
}) |
|||
.catch(err => { |
|||
reject(err) |
|||
}) |
|||
.finally(() => { |
|||
url && this.delUrl(url) |
|||
}) |
|||
}) |
|||
} |
|||
// 取消请求
|
|||
cancelRequest(url) { |
|||
if (typeof url === 'string') { |
|||
// 取消单个请求
|
|||
const sourceIndex = this.getSourceIndex(url) |
|||
sourceIndex >= 0 && this.cancelRequestSourceList?.[sourceIndex][url]() |
|||
} else { |
|||
// 存在多个需要取消请求的地址
|
|||
url.forEach(u => { |
|||
const sourceIndex = this.getSourceIndex(u) |
|||
sourceIndex >= 0 && this.cancelRequestSourceList?.[sourceIndex][u]() |
|||
}) |
|||
} |
|||
} |
|||
// 取消全部请求
|
|||
cancelAllRequest() { |
|||
this.cancelRequestSourceList?.forEach(source => { |
|||
const key = Object.keys(source)[0] |
|||
source[key]() |
|||
}) |
|||
} |
|||
} |
|||
|
|||
export default Request |
@ -0,0 +1,6 @@ |
|||
import { createPinia } from 'pinia' |
|||
import { useCountStore } from './modules/count' |
|||
const store = createPinia() |
|||
|
|||
export default store |
|||
export { useCountStore } |
@ -0,0 +1,27 @@ |
|||
import { defineStore } from 'pinia' |
|||
export const useCountStore = defineStore({ |
|||
id: 'count', // id必填,且需要唯一
|
|||
// state
|
|||
state: () => { |
|||
return { |
|||
count: 0, |
|||
} |
|||
}, |
|||
// getters
|
|||
getters: { |
|||
doubleCount: state => { |
|||
return state.count * 2 |
|||
}, |
|||
}, |
|||
// actions
|
|||
actions: { |
|||
// actions 同样支持异步写法
|
|||
countAdd() { |
|||
// 可以通过 this 访问 state 中的内容
|
|||
this.count++ |
|||
}, |
|||
countReduce() { |
|||
this.count-- |
|||
}, |
|||
}, |
|||
}) |
@ -0,0 +1,24 @@ |
|||
import { defineConfig } from 'vite' |
|||
import { resolve } from 'path' |
|||
import vue from '@vitejs/plugin-vue' |
|||
|
|||
// https://vitejs.dev/config/
|
|||
export default defineConfig({ |
|||
resolve: { |
|||
alias: { |
|||
'@': resolve(__dirname, 'src'), |
|||
cpns: resolve(__dirname, 'src/components'), |
|||
}, |
|||
extensions: ['.js', '.json', '.vue'], |
|||
}, |
|||
plugins: [vue()], |
|||
//配置sass
|
|||
css: { |
|||
preprocessorOptions: { |
|||
scss: { |
|||
additionalData: |
|||
'@import "./src/assets/scss/globalVar.scss";@import "./src/assets/scss/globalMixin.scss";', |
|||
}, |
|||
}, |
|||
}, |
|||
}) |
@ -0,0 +1,448 @@ |
|||
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. |
|||
# yarn lockfile v1 |
|||
|
|||
|
|||
"@babel/parser@^7.16.4": |
|||
"integrity" "sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ==" |
|||
"resolved" "https://registry.npmjs.org/@babel/parser/-/parser-7.21.2.tgz" |
|||
"version" "7.21.2" |
|||
|
|||
"@esbuild/win32-x64@0.16.17": |
|||
"integrity" "sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==" |
|||
"resolved" "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz" |
|||
"version" "0.16.17" |
|||
|
|||
"@vitejs/plugin-vue@^4.0.0": |
|||
"integrity" "sha512-e0X4jErIxAB5oLtDqbHvHpJe/uWNkdpYV83AOG2xo2tEVSzCzewgJMtREZM30wXnM5ls90hxiOtAuVU6H5JgbA==" |
|||
"resolved" "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.0.0.tgz" |
|||
"version" "4.0.0" |
|||
|
|||
"@vue/compiler-core@3.2.47": |
|||
"integrity" "sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==" |
|||
"resolved" "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.47.tgz" |
|||
"version" "3.2.47" |
|||
dependencies: |
|||
"@babel/parser" "^7.16.4" |
|||
"@vue/shared" "3.2.47" |
|||
"estree-walker" "^2.0.2" |
|||
"source-map" "^0.6.1" |
|||
|
|||
"@vue/compiler-dom@3.2.47": |
|||
"integrity" "sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==" |
|||
"resolved" "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.47.tgz" |
|||
"version" "3.2.47" |
|||
dependencies: |
|||
"@vue/compiler-core" "3.2.47" |
|||
"@vue/shared" "3.2.47" |
|||
|
|||
"@vue/compiler-sfc@3.2.47": |
|||
"integrity" "sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==" |
|||
"resolved" "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.47.tgz" |
|||
"version" "3.2.47" |
|||
dependencies: |
|||
"@babel/parser" "^7.16.4" |
|||
"@vue/compiler-core" "3.2.47" |
|||
"@vue/compiler-dom" "3.2.47" |
|||
"@vue/compiler-ssr" "3.2.47" |
|||
"@vue/reactivity-transform" "3.2.47" |
|||
"@vue/shared" "3.2.47" |
|||
"estree-walker" "^2.0.2" |
|||
"magic-string" "^0.25.7" |
|||
"postcss" "^8.1.10" |
|||
"source-map" "^0.6.1" |
|||
|
|||
"@vue/compiler-ssr@3.2.47": |
|||
"integrity" "sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==" |
|||
"resolved" "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.47.tgz" |
|||
"version" "3.2.47" |
|||
dependencies: |
|||
"@vue/compiler-dom" "3.2.47" |
|||
"@vue/shared" "3.2.47" |
|||
|
|||
"@vue/devtools-api@^6.0.0", "@vue/devtools-api@^6.5.0": |
|||
"integrity" "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==" |
|||
"resolved" "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.0.tgz" |
|||
"version" "6.5.0" |
|||
|
|||
"@vue/reactivity-transform@3.2.47": |
|||
"integrity" "sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==" |
|||
"resolved" "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.47.tgz" |
|||
"version" "3.2.47" |
|||
dependencies: |
|||
"@babel/parser" "^7.16.4" |
|||
"@vue/compiler-core" "3.2.47" |
|||
"@vue/shared" "3.2.47" |
|||
"estree-walker" "^2.0.2" |
|||
"magic-string" "^0.25.7" |
|||
|
|||
"@vue/reactivity@3.2.47": |
|||
"integrity" "sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==" |
|||
"resolved" "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.47.tgz" |
|||
"version" "3.2.47" |
|||
dependencies: |
|||
"@vue/shared" "3.2.47" |
|||
|
|||
"@vue/runtime-core@3.2.47": |
|||
"integrity" "sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==" |
|||
"resolved" "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.47.tgz" |
|||
"version" "3.2.47" |
|||
dependencies: |
|||
"@vue/reactivity" "3.2.47" |
|||
"@vue/shared" "3.2.47" |
|||
|
|||
"@vue/runtime-dom@3.2.47": |
|||
"integrity" "sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==" |
|||
"resolved" "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz" |
|||
"version" "3.2.47" |
|||
dependencies: |
|||
"@vue/runtime-core" "3.2.47" |
|||
"@vue/shared" "3.2.47" |
|||
"csstype" "^2.6.8" |
|||
|
|||
"@vue/server-renderer@3.2.47": |
|||
"integrity" "sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==" |
|||
"resolved" "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.47.tgz" |
|||
"version" "3.2.47" |
|||
dependencies: |
|||
"@vue/compiler-ssr" "3.2.47" |
|||
"@vue/shared" "3.2.47" |
|||
|
|||
"@vue/shared@3.2.47": |
|||
"integrity" "sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ==" |
|||
"resolved" "https://registry.npmjs.org/@vue/shared/-/shared-3.2.47.tgz" |
|||
"version" "3.2.47" |
|||
|
|||
"anymatch@~3.1.2": |
|||
"integrity" "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==" |
|||
"resolved" "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" |
|||
"version" "3.1.3" |
|||
dependencies: |
|||
"normalize-path" "^3.0.0" |
|||
"picomatch" "^2.0.4" |
|||
|
|||
"asynckit@^0.4.0": |
|||
"integrity" "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" |
|||
"resolved" "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" |
|||
"version" "0.4.0" |
|||
|
|||
"axios@^1.3.4": |
|||
"integrity" "sha512-toYm+Bsyl6VC5wSkfkbbNB6ROv7KY93PEBBL6xyDczaIHasAiv4wPqQ/c4RjoQzipxRD2W5g21cOqQulZ7rHwQ==" |
|||
"resolved" "https://registry.npmjs.org/axios/-/axios-1.3.4.tgz" |
|||
"version" "1.3.4" |
|||
dependencies: |
|||
"follow-redirects" "^1.15.0" |
|||
"form-data" "^4.0.0" |
|||
"proxy-from-env" "^1.1.0" |
|||
|
|||
"binary-extensions@^2.0.0": |
|||
"integrity" "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" |
|||
"resolved" "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" |
|||
"version" "2.2.0" |
|||
|
|||
"braces@~3.0.2": |
|||
"integrity" "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==" |
|||
"resolved" "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" |
|||
"version" "3.0.2" |
|||
dependencies: |
|||
"fill-range" "^7.0.1" |
|||
|
|||
"chokidar@>=3.0.0 <4.0.0": |
|||
"integrity" "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==" |
|||
"resolved" "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" |
|||
"version" "3.5.3" |
|||
dependencies: |
|||
"anymatch" "~3.1.2" |
|||
"braces" "~3.0.2" |
|||
"glob-parent" "~5.1.2" |
|||
"is-binary-path" "~2.1.0" |
|||
"is-glob" "~4.0.1" |
|||
"normalize-path" "~3.0.0" |
|||
"readdirp" "~3.6.0" |
|||
optionalDependencies: |
|||
"fsevents" "~2.3.2" |
|||
|
|||
"combined-stream@^1.0.8": |
|||
"integrity" "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==" |
|||
"resolved" "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" |
|||
"version" "1.0.8" |
|||
dependencies: |
|||
"delayed-stream" "~1.0.0" |
|||
|
|||
"csstype@^2.6.8": |
|||
"integrity" "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" |
|||
"resolved" "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz" |
|||
"version" "2.6.21" |
|||
|
|||
"delayed-stream@~1.0.0": |
|||
"integrity" "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" |
|||
"resolved" "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" |
|||
"version" "1.0.0" |
|||
|
|||
"esbuild@^0.16.14": |
|||
"integrity" "sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==" |
|||
"resolved" "https://registry.npmjs.org/esbuild/-/esbuild-0.16.17.tgz" |
|||
"version" "0.16.17" |
|||
optionalDependencies: |
|||
"@esbuild/android-arm" "0.16.17" |
|||
"@esbuild/android-arm64" "0.16.17" |
|||
"@esbuild/android-x64" "0.16.17" |
|||
"@esbuild/darwin-arm64" "0.16.17" |
|||
"@esbuild/darwin-x64" "0.16.17" |
|||
"@esbuild/freebsd-arm64" "0.16.17" |
|||
"@esbuild/freebsd-x64" "0.16.17" |
|||
"@esbuild/linux-arm" "0.16.17" |
|||
"@esbuild/linux-arm64" "0.16.17" |
|||
"@esbuild/linux-ia32" "0.16.17" |
|||
"@esbuild/linux-loong64" "0.16.17" |
|||
"@esbuild/linux-mips64el" "0.16.17" |
|||
"@esbuild/linux-ppc64" "0.16.17" |
|||
"@esbuild/linux-riscv64" "0.16.17" |
|||
"@esbuild/linux-s390x" "0.16.17" |
|||
"@esbuild/linux-x64" "0.16.17" |
|||
"@esbuild/netbsd-x64" "0.16.17" |
|||
"@esbuild/openbsd-x64" "0.16.17" |
|||
"@esbuild/sunos-x64" "0.16.17" |
|||
"@esbuild/win32-arm64" "0.16.17" |
|||
"@esbuild/win32-ia32" "0.16.17" |
|||
"@esbuild/win32-x64" "0.16.17" |
|||
|
|||
"estree-walker@^2.0.2": |
|||
"integrity" "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" |
|||
"resolved" "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz" |
|||
"version" "2.0.2" |
|||
|
|||
"fill-range@^7.0.1": |
|||
"integrity" "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==" |
|||
"resolved" "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" |
|||
"version" "7.0.1" |
|||
dependencies: |
|||
"to-regex-range" "^5.0.1" |
|||
|
|||
"follow-redirects@^1.15.0": |
|||
"integrity" "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" |
|||
"resolved" "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz" |
|||
"version" "1.15.2" |
|||
|
|||
"form-data@^4.0.0": |
|||
"integrity" "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==" |
|||
"resolved" "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz" |
|||
"version" "4.0.0" |
|||
dependencies: |
|||
"asynckit" "^0.4.0" |
|||
"combined-stream" "^1.0.8" |
|||
"mime-types" "^2.1.12" |
|||
|
|||
"function-bind@^1.1.1": |
|||
"integrity" "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" |
|||
"resolved" "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" |
|||
"version" "1.1.1" |
|||
|
|||
"glob-parent@~5.1.2": |
|||
"integrity" "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==" |
|||
"resolved" "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" |
|||
"version" "5.1.2" |
|||
dependencies: |
|||
"is-glob" "^4.0.1" |
|||
|
|||
"has@^1.0.3": |
|||
"integrity" "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==" |
|||
"resolved" "https://registry.npmjs.org/has/-/has-1.0.3.tgz" |
|||
"version" "1.0.3" |
|||
dependencies: |
|||
"function-bind" "^1.1.1" |
|||
|
|||
"immutable@^4.0.0": |
|||
"integrity" "sha512-WDxL3Hheb1JkRN3sQkyujNlL/xRjAo3rJtaU5xeufUauG66JdMr32bLj4gF+vWl84DIA3Zxw7tiAjneYzRRw+w==" |
|||
"resolved" "https://registry.npmjs.org/immutable/-/immutable-4.2.4.tgz" |
|||
"version" "4.2.4" |
|||
|
|||
"is-binary-path@~2.1.0": |
|||
"integrity" "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==" |
|||
"resolved" "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" |
|||
"version" "2.1.0" |
|||
dependencies: |
|||
"binary-extensions" "^2.0.0" |
|||
|
|||
"is-core-module@^2.9.0": |
|||
"integrity" "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==" |
|||
"resolved" "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz" |
|||
"version" "2.11.0" |
|||
dependencies: |
|||
"has" "^1.0.3" |
|||
|
|||
"is-extglob@^2.1.1": |
|||
"integrity" "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" |
|||
"resolved" "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" |
|||
"version" "2.1.1" |
|||
|
|||
"is-glob@^4.0.1", "is-glob@~4.0.1": |
|||
"integrity" "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==" |
|||
"resolved" "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" |
|||
"version" "4.0.3" |
|||
dependencies: |
|||
"is-extglob" "^2.1.1" |
|||
|
|||
"is-number@^7.0.0": |
|||
"integrity" "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" |
|||
"resolved" "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" |
|||
"version" "7.0.0" |
|||
|
|||
"magic-string@^0.25.7": |
|||
"integrity" "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==" |
|||
"resolved" "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz" |
|||
"version" "0.25.9" |
|||
dependencies: |
|||
"sourcemap-codec" "^1.4.8" |
|||
|
|||
"mime-db@1.52.0": |
|||
"integrity" "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" |
|||
"resolved" "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" |
|||
"version" "1.52.0" |
|||
|
|||
"mime-types@^2.1.12": |
|||
"integrity" "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==" |
|||
"resolved" "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" |
|||
"version" "2.1.35" |
|||
dependencies: |
|||
"mime-db" "1.52.0" |
|||
|
|||
"nanoid@^3.3.4": |
|||
"integrity" "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" |
|||
"resolved" "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz" |
|||
"version" "3.3.4" |
|||
|
|||
"normalize-path@^3.0.0", "normalize-path@~3.0.0": |
|||
"integrity" "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" |
|||
"resolved" "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" |
|||
"version" "3.0.0" |
|||
|
|||
"path-parse@^1.0.7": |
|||
"integrity" "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" |
|||
"resolved" "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" |
|||
"version" "1.0.7" |
|||
|
|||
"picocolors@^1.0.0": |
|||
"integrity" "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" |
|||
"resolved" "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" |
|||
"version" "1.0.0" |
|||
|
|||
"picomatch@^2.0.4", "picomatch@^2.2.1": |
|||
"integrity" "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" |
|||
"resolved" "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" |
|||
"version" "2.3.1" |
|||
|
|||
"pinia@^2.0.32": |
|||
"integrity" "sha512-8Tw4OrpCSJ028UUyp0gYPP/wyjigLoEceuO/x1G+FlHVf73337e5vLm4uDmrRIoBG1hvaed/eSHnrCFjOc4nkA==" |
|||
"resolved" "https://registry.npmjs.org/pinia/-/pinia-2.0.32.tgz" |
|||
"version" "2.0.32" |
|||
dependencies: |
|||
"@vue/devtools-api" "^6.5.0" |
|||
"vue-demi" "*" |
|||
|
|||
"postcss@^8.1.10", "postcss@^8.4.21": |
|||
"integrity" "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==" |
|||
"resolved" "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz" |
|||
"version" "8.4.21" |
|||
dependencies: |
|||
"nanoid" "^3.3.4" |
|||
"picocolors" "^1.0.0" |
|||
"source-map-js" "^1.0.2" |
|||
|
|||
"proxy-from-env@^1.1.0": |
|||
"integrity" "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" |
|||
"resolved" "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz" |
|||
"version" "1.1.0" |
|||
|
|||
"readdirp@~3.6.0": |
|||
"integrity" "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==" |
|||
"resolved" "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" |
|||
"version" "3.6.0" |
|||
dependencies: |
|||
"picomatch" "^2.2.1" |
|||
|
|||
"resolve@^1.22.1": |
|||
"integrity" "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==" |
|||
"resolved" "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz" |
|||
"version" "1.22.1" |
|||
dependencies: |
|||
"is-core-module" "^2.9.0" |
|||
"path-parse" "^1.0.7" |
|||
"supports-preserve-symlinks-flag" "^1.0.0" |
|||
|
|||
"rollup@^3.10.0": |
|||
"integrity" "sha512-J8C6VfEBjkvYPESMQYxKHxNOh4A5a3FlP+0BETGo34HEcE4eTlgCrO2+eWzlu2a/sHs2QUkZco+wscH7jhhgWg==" |
|||
"resolved" "https://registry.npmjs.org/rollup/-/rollup-3.18.0.tgz" |
|||
"version" "3.18.0" |
|||
optionalDependencies: |
|||
"fsevents" "~2.3.2" |
|||
|
|||
"sass@*", "sass@^1.58.3": |
|||
"integrity" "sha512-Q7RaEtYf6BflYrQ+buPudKR26/lH+10EmO9bBqbmPh/KeLqv8bjpTNqxe71ocONqXq+jYiCbpPUmQMS+JJPk4A==" |
|||
"resolved" "https://registry.npmjs.org/sass/-/sass-1.58.3.tgz" |
|||
"version" "1.58.3" |
|||
dependencies: |
|||
"chokidar" ">=3.0.0 <4.0.0" |
|||
"immutable" "^4.0.0" |
|||
"source-map-js" ">=0.6.2 <2.0.0" |
|||
|
|||
"source-map-js@^1.0.2", "source-map-js@>=0.6.2 <2.0.0": |
|||
"integrity" "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" |
|||
"resolved" "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz" |
|||
"version" "1.0.2" |
|||
|
|||
"source-map@^0.6.1": |
|||
"integrity" "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" |
|||
"resolved" "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" |
|||
"version" "0.6.1" |
|||
|
|||
"sourcemap-codec@^1.4.8": |
|||
"integrity" "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" |
|||
"resolved" "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz" |
|||
"version" "1.4.8" |
|||
|
|||
"supports-preserve-symlinks-flag@^1.0.0": |
|||
"integrity" "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" |
|||
"resolved" "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" |
|||
"version" "1.0.0" |
|||
|
|||
"to-regex-range@^5.0.1": |
|||
"integrity" "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==" |
|||
"resolved" "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" |
|||
"version" "5.0.1" |
|||
dependencies: |
|||
"is-number" "^7.0.0" |
|||
|
|||
"vite@^4.0.0", "vite@^4.1.0": |
|||
"integrity" "sha512-3knk/HsbSTKEin43zHu7jTwYWv81f8kgAL99G5NWBcA1LKvtvcVAC4JjBH1arBunO9kQka+1oGbrMKOjk4ZrBg==" |
|||
"resolved" "https://registry.npmjs.org/vite/-/vite-4.1.4.tgz" |
|||
"version" "4.1.4" |
|||
dependencies: |
|||
"esbuild" "^0.16.14" |
|||
"postcss" "^8.4.21" |
|||
"resolve" "^1.22.1" |
|||
"rollup" "^3.10.0" |
|||
optionalDependencies: |
|||
"fsevents" "~2.3.2" |
|||
|
|||
"vue-demi@*": |
|||
"integrity" "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==" |
|||
"resolved" "https://registry.npmjs.org/vue-demi/-/vue-demi-0.13.11.tgz" |
|||
"version" "0.13.11" |
|||
|
|||
"vue-router@^4.0.13": |
|||
"integrity" "sha512-LmXrC+BkDRLak+d5xTMgUYraT3Nj0H/vCbP+7usGvIl9Viqd1UP6AsP0i69pSbn9O0dXK/xCdp4yPw21HqV9Jw==" |
|||
"resolved" "https://registry.npmjs.org/vue-router/-/vue-router-4.0.13.tgz" |
|||
"version" "4.0.13" |
|||
dependencies: |
|||
"@vue/devtools-api" "^6.0.0" |
|||
|
|||
"vue@^2.6.14 || ^3.2.0", "vue@^3.0.0-0 || ^2.6.0", "vue@^3.2.0", "vue@^3.2.25", "vue@^3.2.45", "vue@3.2.47": |
|||
"integrity" "sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==" |
|||
"resolved" "https://registry.npmjs.org/vue/-/vue-3.2.47.tgz" |
|||
"version" "3.2.47" |
|||
dependencies: |
|||
"@vue/compiler-dom" "3.2.47" |
|||
"@vue/compiler-sfc" "3.2.47" |
|||
"@vue/runtime-dom" "3.2.47" |
|||
"@vue/server-renderer" "3.2.47" |
|||
"@vue/shared" "3.2.47" |
Write
Preview
Loading…
Cancel
Save
Reference in new issue