您好,登錄后才能下訂單哦!
這篇文章主要介紹“怎么使用vite+vue3.0+ts+element-plus搭建項目”,在日常操作中,相信很多人在怎么使用vite+vue3.0+ts+element-plus搭建項目問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么使用vite+vue3.0+ts+element-plus搭建項目”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
vite是一個由原生 ESM 驅(qū)動的 Web 開發(fā)構(gòu)建工具。在開發(fā)環(huán)境下基于瀏覽器原生 ES imports 開發(fā),在生產(chǎn)環(huán)境下基于 Rollup 打包。
快速的冷啟動:不需要等待打包操作;
即時的熱模塊更新:替換性能和模塊數(shù)量的解耦讓更新飛起;
真正的按需編譯:不再等待整個應(yīng)用編譯完成,這是一個巨大的改變。
node v12.19.0
@vue/cli 4.5.8
npm init vite-app <project-name> cd <project-name> npm install npm run dev
或
yarn create vite-app <project-name> cd <project-name> yarn yarn dev
vite.config.ts 相當(dāng)于 @vue-cli 項目中的 vue.config.js
import path from "path"; const pathResolve = (pathStr: string) => { return path.resolve(__dirname, pathStr); } const config = { base: './',//在生產(chǎn)中服務(wù)時的基本公共路徑。@default '/' alias: { '/@/': pathResolve('./src'), }, outDir: 'vite-init',//構(gòu)建輸出將放在其中。會在構(gòu)建之前刪除舊目錄。@default 'dist' minify: 'esbuild',//構(gòu)建時的壓縮方式 hostname: 'localhost',//本地啟動的服務(wù)地址 port: '8800',//服務(wù)端口號 open: false,//啟動服務(wù)時是否在瀏覽器打開 https: false,//是否開啟https ssr: false,//是否服務(wù)端渲染 optimizeDeps: {// 引入第三方的配置 include: ['axios'] }, // proxy: {//代理配置 // '/api': { // target: 'http://xx.xx.xx.xx:xxxx', // changeOrigin: true, // ws: true, // rewrite: (path: string) => { path.replace(/^\/api/, '') } // } // } } module.exports = config;
{ "compilerOptions": { "target": "ES5",//指定ECMAScript的目標(biāo)版本:'ES3'(默認(rèn)),'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020',或'ESNEXT'。 "module": "commonjs",//指定模塊代碼生成:'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020',或'ESNext'。 "strict": true,//是否啟用所有嚴(yán)格的類型檢查選項。 "baseUrl":"./",//用于解析非絕對模塊名稱的基本目錄。 "paths": { "/@/*": ["./src/*"] }, "noImplicitAny": true, //對于隱含有'any'類型的表達(dá)式和聲明引發(fā)錯誤。 "esModuleInterop": true, //通過為所有導(dǎo)入創(chuàng)建名稱空間對象,實現(xiàn)CommonJS和ES模塊之間的互操作性。意味著“allowSyntheticDefaultImports”。 "experimentalDecorators": true, //支持對ES7裝飾器的實驗性支持。 "skipLibCheck": true, //跳過聲明文件的類型檢查。 "forceConsistentCasingInFileNames": true //禁止對同一文件使用大小寫不一致的引用。 } }
修改app.vue
<template> <img alt="Vue logo" src="./assets/logo.png" /> <router-view /> </template> <script> export default { name: 'App', setup() { } } </script>
在 src 下新建 views文件夾,并在文件夾內(nèi)創(chuàng)建 index.vue
<template> <HelloWorld :msg="msg"></HelloWorld> </template> <script lang="ts"> import HelloWorld from "/@/views/HelloWorld.vue"; import { defineComponent } from "vue"; export default defineComponent({ name: "Home", components: { HelloWorld }, setup() { return { msg: "hello World", }; }, }); </script>
PS:在引入.vue文件時一定要帶上后綴名,否則會報找不到文件
在views文件夾內(nèi)創(chuàng)建 HelloWorld.vue
<template> <h2>{{ msg }}</h2> <button @click="realTime.count++">count is: {{ realTime.count }}</button> <button @click="handleclick">點(diǎn)擊跳轉(zhuǎn)其它路由</button> <p>Edit <code>components/HelloWorld.vue</code> to test hot module replacement.</p> </template> <script> import { defineComponent, reactive } from "vue"; import { useRouter } from 'vue-router' export default defineComponent({ name: 'Index', props: { msg: { type: String, default: '歡迎來到vue3' } }, setup(props) { const router = useRouter(); let realTime = reactive({ count: 0 }); function handleclick() { router.push({ path: '/other' }) } return { msg: props.msg, realTime, handleclick } } }) </script>
在 src 下新建 router 文件夾,并在文件夾內(nèi)創(chuàng)建 index.ts
import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router' const routes: Array<RouteRecordRaw> = [ { path: '/', component: () => import("/@/views/index.vue") }, ] export default createRouter({ history: createWebHistory(), routes })
把原本的main.js改為main.ts,修改后別忘記把index.html里面也改為main.ts
import { createApp } from 'vue' import router from './router/index' import App from './App.vue' import ElementPlus from 'element-plus' import 'element-plus/lib/theme-chalk/index.css' import './reset.css' const app = createApp(App); app.use(ElementPlus); app.use(router); app.mount('#app');
細(xì)心的同學(xué)這時可能已經(jīng)發(fā)現(xiàn):在 ts 文件中引入 .vue 文件時出現(xiàn)以下報錯,但是不影響代碼正常運(yùn)行
報錯原因:typescript 只能理解 .ts 文件,無法理解 .vue文件
解決方法:在項目根目錄或 src 文件夾下創(chuàng)建一個后綴為 .d.ts 的文件,并寫入以下內(nèi)容:
declare module '*.vue' { } declare module '*.js' declare module '*.json'; declare module '*.svg' declare module '*.png' declare module '*.jpg' declare module '*.jpeg' declare module '*.gif' declare module '*.bmp' declare module '*.tiff'
到此,關(guān)于“怎么使用vite+vue3.0+ts+element-plus搭建項目”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。