一步步帶你用vite簡(jiǎn)單搭建ts+vue3全家桶
一、vite環(huán)境搭建,構(gòu)建vite-vue-ts項(xiàng)目
1、安裝vite環(huán)境
npm init @vitejs/app
或者
yarn create @vitejs/app
2、使用vite初始化vite+vue+ts的項(xiàng)目
npm init @vitejs/app app-name
或者
yarn create @vitejs/app app-name
3、選擇項(xiàng)目類型為vue+ts
(小tips:git bash中直接按上下鍵切換選擇自己想要的選項(xiàng),雖然界面中不會(huì)動(dòng)態(tài)展示切換的用戶交互過(guò)程,但是別擔(dān)心,在回車后可以看到是切換到了對(duì)應(yīng)選項(xiàng)的)
如此一來(lái),項(xiàng)目初始化完成,我們會(huì)得到一個(gè)文件結(jié)構(gòu)如下圖的項(xiàng)目:
此時(shí),ts文件都會(huì)報(bào)此類錯(cuò)誤: 找不到依賴
因此我們需要執(zhí)行npm install來(lái)安裝依賴,安裝完成后就ok了。如果編輯器此時(shí)還是有報(bào)錯(cuò)提示可以重新打開文件試試。
此時(shí)已無(wú)報(bào)錯(cuò):
跟著package.json中的腳本設(shè)定,嘗試啟動(dòng)項(xiàng)目,結(jié)果如下:
此時(shí),項(xiàng)目初始化就算是完成了。
二、項(xiàng)目配置
1、vue-router 配置
(1)安裝vue-router
npm install vue-router@4
或者
yarn add vue-router@4
(2)在src下新建一個(gè)router文件夾,作為vue-router的配置目錄。此目錄下再新建index.ts文件,編輯內(nèi)容如下:
import { createRouter, createWebHistory, RouteRecordRaw } from "vue-router"; const history = createWebHistory() const routes: Array<RouteRecordRaw> = [ { path: "/", redirect: "/home", }, { path: "/home", name: "home", component: () => import("../views/home/index.vue"), }, ]; const router = createRouter({ history, routes }) export default router
(3)新建一個(gè)views文件夾,作為項(xiàng)目界面開發(fā)目錄。參考router中的配置可知,在views目錄下新建home目錄并新建index.vue,編輯文件如下:
<script setup lang="ts"> import { ref } from 'vue' const msg = ref('Hello') const count = ref(710) </script> <template> <h2>{{ msg }}</h2> <h2>{{ count }}</h2> </template> <style scoped> </style>
(4)在main.ts中引入vue-router
import { createApp } from "vue"; import App from "./App.vue"; import router from "./router"; createApp(App).use(router).mount("#app");
(5)在App.vue中使用vue-router
<script setup lang="ts"> // This starter template is using Vue 3 <script setup> SFCs // Check out https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup </script> <template> <router-view /> </template> <style> #app { font-family: Avenir, Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-align: center; color: #2c3e50; margin-top: 60px; } </style>
配置結(jié)束,實(shí)現(xiàn)界面如下:
2、vuex 配置
(1)安裝vuex
npm install vuex@next --save
或者
yarn add vuex@next --save
(2)在 src目錄下創(chuàng)建一個(gè)store文件夾,在里面新建 index.ts、state.ts、mutations.ts、actions.ts
(3)編輯index.ts如下:
import { createStore, } from "vueX"; import state from './state' import mutations from './mutations' import actions from './actions' const store = createStore({ state, mutations, actions, modules: { } }) export default store
(4)在main.ts中引入
import { createApp } from 'vue' import App from './App.vue' import router from "./router" import store from './store' const app = createApp(App) app.use(router).use(store).mount('#app')
3、vite.config.ts 配置
(1)配置路徑別名
import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import path from 'path' // https://vitejs.dev/config/ export default defineConfig({ plugins: [vue()], // 注冊(cè)插件 server: { open: true }, resolve: { alias: { // 如果報(bào)錯(cuò)__dirname找不到,需要安裝node,執(zhí)行yarn add @types/node --save-dev "@": path.resolve(__dirname, "src"), "comps": path.resolve(__dirname, "src/components"), } } })
出現(xiàn)報(bào)錯(cuò),無(wú)法識(shí)別path模塊:
path模塊是node中的一個(gè)核心模塊,需要安裝讓 TypeScript 支持 node.js 的依賴包—— @types/node(This package contains type definitions for Node.js)
npm install @types/node --save-dev
安裝成功后,就可以獲得有關(guān)node.js v6.x 的API的 類型說(shuō)明文件,之后就可以順利的導(dǎo)入需要的模塊了,問(wèn)題解決。
總結(jié)
到此這篇關(guān)于用vite簡(jiǎn)單搭建ts+vue3全家桶的文章就介紹到這了,更多相關(guān)vite搭建ts+vue3全家桶內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue 大文件上傳和斷點(diǎn)續(xù)傳的實(shí)現(xiàn)
文件上傳在很多項(xiàng)目中都用的到,如果是幾M的很快就傳送完畢,如果是大文件呢?本文就介紹了Vue 大文件上傳和斷點(diǎn)續(xù)傳的實(shí)現(xiàn),感興趣的可以了解一下2021-06-06Vue高級(jí)用法實(shí)例教程之動(dòng)態(tài)組件
讓多個(gè)組件使用同一個(gè)掛載點(diǎn),并動(dòng)態(tài)切換,這就是動(dòng)態(tài)組件,下面這篇文章主要給大家介紹了關(guān)于Vue高級(jí)用法實(shí)例教程之動(dòng)態(tài)組件的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2021-11-11Vue中ElementUI結(jié)合transform使用時(shí)彈框定位不準(zhǔn)確問(wèn)題解析
在近期開發(fā)中,需要將1920*1080放到更大像素大屏上演示,所以需要使用到transform來(lái)對(duì)頁(yè)面進(jìn)行縮放,但是此時(shí)發(fā)現(xiàn)彈框定位出錯(cuò)問(wèn)題,無(wú)法準(zhǔn)備定位到實(shí)際位置,本文給大家分享Vue中ElementUI結(jié)合transform使用時(shí)彈框定位不準(zhǔn)確解決方法,感興趣的朋友一起看看吧2024-01-01vue實(shí)現(xiàn)設(shè)置載入動(dòng)畫和初始化頁(yè)面動(dòng)畫效果
今天小編就為大家分享一篇vue實(shí)現(xiàn)設(shè)置載入動(dòng)畫和初始化頁(yè)面動(dòng)畫效果,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10vue+element使用動(dòng)態(tài)加載路由方式實(shí)現(xiàn)三級(jí)菜單頁(yè)面顯示的操作
這篇文章主要介紹了vue+element使用動(dòng)態(tài)加載路由方式實(shí)現(xiàn)三級(jí)菜單頁(yè)面顯示的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-08-08vue3鼠標(biāo)拖拽滑動(dòng)效果實(shí)現(xiàn)demo
這篇文章主要為大家介紹了vue3鼠標(biāo)拖拽滑動(dòng)效果實(shí)現(xiàn)demo,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12Vue實(shí)現(xiàn)table列表項(xiàng)上下移動(dòng)的示例代碼
本文主要介紹了Vue實(shí)現(xiàn)table列表項(xiàng)上下移動(dòng)的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04使用vite創(chuàng)建vue3項(xiàng)目的詳細(xì)圖文教程
創(chuàng)建Vue3項(xiàng)目有兩種常見的方式,一種是想vue2版本一樣使用腳手架工具創(chuàng)建,創(chuàng)建vue3項(xiàng)目的腳手架必須是4版本以上的,另一種方法就是使用vite創(chuàng)建,這篇文章主要給大家介紹了關(guān)于如何使用vite創(chuàng)建vue3項(xiàng)目的相關(guān)資料,需要的朋友可以參考下2022-11-11