vue3前端项目模板,可以拉下模板写新的项目
songshankun
2023-10-24 d880753d75b23a0ab36082ef1549ca45a5114222
chore: 添加lodash-es/vueuse
5个文件已修改
227 ■■■■ 已修改文件
components.d.ts 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
package-lock.json 190 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
package.json 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/AboutView.vue 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/HomeView.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
components.d.ts
@@ -7,15 +7,14 @@
declare module 'vue' {
  export interface GlobalComponents {
    ElButton: typeof import('element-plus/es')['ElButton']
    HelloWorld: typeof import('./src/components/HelloWorld.vue')['default']
    IconCommunity: typeof import('./src/components/icons/IconCommunity.vue')['default']
    IconDocumentation: typeof import('./src/components/icons/IconDocumentation.vue')['default']
    IconEcosystem: typeof import('./src/components/icons/IconEcosystem.vue')['default']
    IconSupport: typeof import('./src/components/icons/IconSupport.vue')['default']
    IconTooling: typeof import('./src/components/icons/IconTooling.vue')['default']
    IconCommunity: (typeof import('./src/components/icons/IconCommunity.vue'))['default']
    IconDocumentation: (typeof import('./src/components/icons/IconDocumentation.vue'))['default']
    IconEcosystem: (typeof import('./src/components/icons/IconEcosystem.vue'))['default']
    IconSupport: (typeof import('./src/components/icons/IconSupport.vue'))['default']
    IconTooling: (typeof import('./src/components/icons/IconTooling.vue'))['default']
    RouterLink: typeof import('vue-router')['RouterLink']
    RouterView: typeof import('vue-router')['RouterView']
    TheWelcome: typeof import('./src/components/TheWelcome.vue')['default']
    WelcomeItem: typeof import('./src/components/WelcomeItem.vue')['default']
  }
}
package-lock.json
@@ -8,7 +8,9 @@
      "name": "basic-vue3-template",
      "version": "0.0.0",
      "dependencies": {
        "@vueuse/core": "^10.5.0",
        "element-plus": "^2.4.1",
        "lodash-es": "^4.17.21",
        "pinia": "^2.1.7",
        "vue": "^3.3.4",
        "vue-router": "^4.2.5"
@@ -864,9 +866,9 @@
      "dev": true
    },
    "node_modules/@types/web-bluetooth": {
      "version": "0.0.16",
      "resolved": "https://registry.npmmirror.com/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz",
      "integrity": "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ=="
      "version": "0.0.18",
      "resolved": "https://registry.npmmirror.com/@types/web-bluetooth/-/web-bluetooth-0.0.18.tgz",
      "integrity": "sha512-v/ZHEj9xh82usl8LMR3GarzFY1IrbXJw5L4QfQhokjRV91q+SelFqxQWSep1ucXEZ22+dSTwLFkXeur25sPIbw=="
    },
    "node_modules/@typescript-eslint/eslint-plugin": {
      "version": "6.9.0",
@@ -1278,14 +1280,14 @@
      }
    },
    "node_modules/@vueuse/core": {
      "version": "9.13.0",
      "resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-9.13.0.tgz",
      "integrity": "sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==",
      "version": "10.5.0",
      "resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-10.5.0.tgz",
      "integrity": "sha512-z/tI2eSvxwLRjOhDm0h/SXAjNm8N5ld6/SC/JQs6o6kpJ6Ya50LnEL8g5hoYu005i28L0zqB5L5yAl8Jl26K3A==",
      "dependencies": {
        "@types/web-bluetooth": "^0.0.16",
        "@vueuse/metadata": "9.13.0",
        "@vueuse/shared": "9.13.0",
        "vue-demi": "*"
        "@types/web-bluetooth": "^0.0.18",
        "@vueuse/metadata": "10.5.0",
        "@vueuse/shared": "10.5.0",
        "vue-demi": ">=0.14.6"
      }
    },
    "node_modules/@vueuse/core/node_modules/vue-demi": {
@@ -1311,16 +1313,16 @@
      }
    },
    "node_modules/@vueuse/metadata": {
      "version": "9.13.0",
      "resolved": "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-9.13.0.tgz",
      "integrity": "sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ=="
      "version": "10.5.0",
      "resolved": "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-10.5.0.tgz",
      "integrity": "sha512-fEbElR+MaIYyCkeM0SzWkdoMtOpIwO72x8WsZHRE7IggiOlILttqttM69AS13nrDxosnDBYdyy3C5mR1LCxHsw=="
    },
    "node_modules/@vueuse/shared": {
      "version": "9.13.0",
      "resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-9.13.0.tgz",
      "integrity": "sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==",
      "version": "10.5.0",
      "resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-10.5.0.tgz",
      "integrity": "sha512-18iyxbbHYLst9MqU1X1QNdMHIjks6wC7XTVf0KNOv5es/Ms6gjVFCAAWTVP2JStuGqydg3DT+ExpFORUEi9yhg==",
      "dependencies": {
        "vue-demi": "*"
        "vue-demi": ">=0.14.6"
      }
    },
    "node_modules/@vueuse/shared/node_modules/vue-demi": {
@@ -1809,6 +1811,79 @@
      },
      "peerDependencies": {
        "vue": "^3.2.0"
      }
    },
    "node_modules/element-plus/node_modules/@types/web-bluetooth": {
      "version": "0.0.16",
      "resolved": "https://registry.npmmirror.com/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz",
      "integrity": "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ=="
    },
    "node_modules/element-plus/node_modules/@vueuse/core": {
      "version": "9.13.0",
      "resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-9.13.0.tgz",
      "integrity": "sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==",
      "dependencies": {
        "@types/web-bluetooth": "^0.0.16",
        "@vueuse/metadata": "9.13.0",
        "@vueuse/shared": "9.13.0",
        "vue-demi": "*"
      }
    },
    "node_modules/element-plus/node_modules/@vueuse/core/node_modules/vue-demi": {
      "version": "0.14.6",
      "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.6.tgz",
      "integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==",
      "hasInstallScript": true,
      "bin": {
        "vue-demi-fix": "bin/vue-demi-fix.js",
        "vue-demi-switch": "bin/vue-demi-switch.js"
      },
      "engines": {
        "node": ">=12"
      },
      "peerDependencies": {
        "@vue/composition-api": "^1.0.0-rc.1",
        "vue": "^3.0.0-0 || ^2.6.0"
      },
      "peerDependenciesMeta": {
        "@vue/composition-api": {
          "optional": true
        }
      }
    },
    "node_modules/element-plus/node_modules/@vueuse/metadata": {
      "version": "9.13.0",
      "resolved": "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-9.13.0.tgz",
      "integrity": "sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ=="
    },
    "node_modules/element-plus/node_modules/@vueuse/shared": {
      "version": "9.13.0",
      "resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-9.13.0.tgz",
      "integrity": "sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==",
      "dependencies": {
        "vue-demi": "*"
      }
    },
    "node_modules/element-plus/node_modules/@vueuse/shared/node_modules/vue-demi": {
      "version": "0.14.6",
      "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.6.tgz",
      "integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==",
      "hasInstallScript": true,
      "bin": {
        "vue-demi-fix": "bin/vue-demi-fix.js",
        "vue-demi-switch": "bin/vue-demi-switch.js"
      },
      "engines": {
        "node": ">=12"
      },
      "peerDependencies": {
        "@vue/composition-api": "^1.0.0-rc.1",
        "vue": "^3.0.0-0 || ^2.6.0"
      },
      "peerDependenciesMeta": {
        "@vue/composition-api": {
          "optional": true
        }
      }
    },
    "node_modules/emoji-regex": {
@@ -4956,9 +5031,9 @@
      "dev": true
    },
    "@types/web-bluetooth": {
      "version": "0.0.16",
      "resolved": "https://registry.npmmirror.com/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz",
      "integrity": "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ=="
      "version": "0.0.18",
      "resolved": "https://registry.npmmirror.com/@types/web-bluetooth/-/web-bluetooth-0.0.18.tgz",
      "integrity": "sha512-v/ZHEj9xh82usl8LMR3GarzFY1IrbXJw5L4QfQhokjRV91q+SelFqxQWSep1ucXEZ22+dSTwLFkXeur25sPIbw=="
    },
    "@typescript-eslint/eslint-plugin": {
      "version": "6.9.0",
@@ -5278,14 +5353,14 @@
      }
    },
    "@vueuse/core": {
      "version": "9.13.0",
      "resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-9.13.0.tgz",
      "integrity": "sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==",
      "version": "10.5.0",
      "resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-10.5.0.tgz",
      "integrity": "sha512-z/tI2eSvxwLRjOhDm0h/SXAjNm8N5ld6/SC/JQs6o6kpJ6Ya50LnEL8g5hoYu005i28L0zqB5L5yAl8Jl26K3A==",
      "requires": {
        "@types/web-bluetooth": "^0.0.16",
        "@vueuse/metadata": "9.13.0",
        "@vueuse/shared": "9.13.0",
        "vue-demi": "*"
        "@types/web-bluetooth": "^0.0.18",
        "@vueuse/metadata": "10.5.0",
        "@vueuse/shared": "10.5.0",
        "vue-demi": ">=0.14.6"
      },
      "dependencies": {
        "vue-demi": {
@@ -5297,16 +5372,16 @@
      }
    },
    "@vueuse/metadata": {
      "version": "9.13.0",
      "resolved": "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-9.13.0.tgz",
      "integrity": "sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ=="
      "version": "10.5.0",
      "resolved": "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-10.5.0.tgz",
      "integrity": "sha512-fEbElR+MaIYyCkeM0SzWkdoMtOpIwO72x8WsZHRE7IggiOlILttqttM69AS13nrDxosnDBYdyy3C5mR1LCxHsw=="
    },
    "@vueuse/shared": {
      "version": "9.13.0",
      "resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-9.13.0.tgz",
      "integrity": "sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==",
      "version": "10.5.0",
      "resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-10.5.0.tgz",
      "integrity": "sha512-18iyxbbHYLst9MqU1X1QNdMHIjks6wC7XTVf0KNOv5es/Ms6gjVFCAAWTVP2JStuGqydg3DT+ExpFORUEi9yhg==",
      "requires": {
        "vue-demi": "*"
        "vue-demi": ">=0.14.6"
      },
      "dependencies": {
        "vue-demi": {
@@ -5683,6 +5758,53 @@
        "lodash-unified": "^1.0.2",
        "memoize-one": "^6.0.0",
        "normalize-wheel-es": "^1.2.0"
      },
      "dependencies": {
        "@types/web-bluetooth": {
          "version": "0.0.16",
          "resolved": "https://registry.npmmirror.com/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz",
          "integrity": "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ=="
        },
        "@vueuse/core": {
          "version": "9.13.0",
          "resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-9.13.0.tgz",
          "integrity": "sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==",
          "requires": {
            "@types/web-bluetooth": "^0.0.16",
            "@vueuse/metadata": "9.13.0",
            "@vueuse/shared": "9.13.0",
            "vue-demi": "*"
          },
          "dependencies": {
            "vue-demi": {
              "version": "0.14.6",
              "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.6.tgz",
              "integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==",
              "requires": {}
            }
          }
        },
        "@vueuse/metadata": {
          "version": "9.13.0",
          "resolved": "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-9.13.0.tgz",
          "integrity": "sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ=="
        },
        "@vueuse/shared": {
          "version": "9.13.0",
          "resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-9.13.0.tgz",
          "integrity": "sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==",
          "requires": {
            "vue-demi": "*"
          },
          "dependencies": {
            "vue-demi": {
              "version": "0.14.6",
              "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.6.tgz",
              "integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==",
              "requires": {}
            }
          }
        }
      }
    },
    "emoji-regex": {
package.json
@@ -13,7 +13,9 @@
    "prepare": "husky install"
  },
  "dependencies": {
    "@vueuse/core": "^10.5.0",
    "element-plus": "^2.4.1",
    "lodash-es": "^4.17.21",
    "pinia": "^2.1.7",
    "vue": "^3.3.4",
    "vue-router": "^4.2.5"
@@ -42,8 +44,7 @@
  "lint-staged": {
    "src/**/*.{js,ts,jsx,tsx,vue}": [
      "eslint --fix",
      "prettier --write",
      "git add"
      "prettier --write"
    ]
  }
}
src/views/AboutView.vue
@@ -1,10 +1,15 @@
<template>
  <div class="about">
    <h1>This is an about page</h1>
    count: {{ counter.count }}
    <el-button size="small" @click="counter.increment">按钮</el-button>
  </div>
</template>
<script setup lang="ts"></script>
<script setup lang="ts">
import { useCounterStore } from '@/stores/counter'
let counter = useCounterStore()
</script>
<style lang="scss">
@media (min-width: 1024px) {
src/views/HomeView.vue
@@ -1,9 +1,3 @@
<script setup lang="ts">
import TheWelcome from '../components/TheWelcome.vue'
</script>
<script setup lang="ts"></script>
<template>
  <main>
    <TheWelcome />
  </main>
</template>
<template>home</template>