使用vite創(chuàng)建vite3 項目以及遇到的一些問題

Vite是一種新型前端構建工具何之,能夠顯著提升前端開發(fā)體驗缨睡。

------------------------開發(fā)------------------------------

1公荧、快速創(chuàng)建vue3+ts的項目

npm init vite@latest vue3-project-demo --template vue-ts

2年堆、引入sass

npm add -D sass

3丹墨、設置環(huán)境變量

1恼除、創(chuàng)建.env環(huán)境變量文件,見vite文檔
2植捎、在環(huán)境變量文件中定義的變量衙解,可以在 env.d.ts 增加智能提示

/// <reference types="vite/client" />
interface ImportMetaEnv {
  readonly VITE_APP_TITLE: string
  // 更多環(huán)境變量...
}
interface ImportMeta {
  readonly env: ImportMetaEnv
}

3、設置多環(huán)境運行:

  "scripts": {
    "dev": "vite serve --mode development",
    "test": "vite serve --mode uat",
    "build:dev": "vite build --mode development",
    "build:test": "vite build --mode uat",
    "build:prod": "vite build --mode production",
    ...
}

------------------------問題------------------------------

1焰枢、項目創(chuàng)建成功后蚓峦,使用命令npm run dev看到終端顯示,Network沒有顯示局域網ip

  vite v2.9.13 dev server running at:

  > Local: http://localhost:3000/
  > Network: use `--host` to expose

  ready in 291ms.

根據網上查詢的資料济锄,有以下幾種解決方法:

  • 通過修改vite.config.ts 方法解決
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [vue()],
  server: {
    host: '0.0.0.0'        // 添加server暑椰,設置host
  }
})
  • 通過Vite CLI配置
    執(zhí)行 npx vite --host 0.0.0.0命令后,就可以通過局域網ip訪問了
  • 修改npm腳本
    在根目錄下package.json 文件中修改scriptes節(jié)點下的腳本:
  "scripts": {
    "dev": "vite --host 0.0.0.0",        // 在此添加host
    "build": "vue-tsc --noEmit && vite build",
    "preview": "vite preview"
  },
  ....
  ....
}

修改上面任何一種配置荐绝,可解決network 為空的問題一汽。

2、項目中引入組件HelloWorld有一個紅色波浪號提示

截屏2022-07-05 下午5.33.01.png
造成的原因:

因為vue3不支持vutur

解決方案:

方案1:在vscode 中搜索vetur插件低滩,禁用之后召夹,重啟就可以。


截屏2022-07-05 下午5.44.09.png

方案2:在根目錄 env.d.ts中恕沫,添加如下代碼也可以解決

declare module "*.vue" {
  import { App, defineComponent } from "vue";
  const component: ReturnType<typeof defineComponent> & {
    install(app: App): void;
  };
  export default component;
}

3监憎、element-plus 按需導入后,使用elmessage婶溯、elloading提示紅色下劃線枫虏。

1673574701383.png
解決方案:

在根目錄新建一個 element-plus.d.ts 文件,保證后綴名是.d.ts就可以了

export {}
declare global {
  const ElMessage:typeof import('element-plus')['ElMessage'] 
  const ElLoading:typeof import('element-plus')['ElLoading'] 
}

在tsconfig.js 中引入element-plus.d.ts

"include": ["element-plus.d.ts"],

4爬虱、vue3 運行報錯:Uncaught ReferenceError: globalThis is not defined

原因:

globalThis旨在通過定義一個標準的全局屬性來整合日益分散的訪問全局對象的方法。該提案目前處于第四階段腾它,這意味著它已經準備好被納入ES2020標準跑筝。所有流行的瀏覽器,包括Chrome 71+瞒滴、Firefox 65+和Safari 12.1+曲梗,都已經支持這項功能赞警。你也可以在Node.js 12+中使用它。

解決方案:

方案1:
可以通過升級node版本和瀏覽器版本解決虏两,node> 12愧旦,chrome版本>71。

方案2:
在index.html中

<script>
  this.globalThis || (this.globalThis = this);
</script>

5定罢、引入router 報錯:變量“routes”在某些無法確定其類型的位置處隱式具有類型“any[]”笤虫。

解決方案:

引入RouteRecordRaw,充當路由數據類型祖凫,ts中數據類型是Array<T>琼蚯,T就是數據類型。

import { createRouter, createWebHistory, type RouteRecordRaw } from 'vue-router'

const routes:Array<RouteRecordRaw> = [
   {
    path: '/',
    redirect: '/home'
  },
  {
    path: '/home',
    name: 'Home',
    component: () => import('@/views/layout/baselayout.vue')
  },
  {
    path: '/login',
    name: 'Login',
    component: () => import('@/views/login/index.vue')
  },
  {
    path: '/:path(.*)',
    name: '404',
    component: () => import('@/views/notFound/index.vue')
  }
]

const router = createRouter({
  history: createWebHistory(import.meta.env.BASE_URL),
  routes
})

export default router

6惠况、引入element-plus

執(zhí)行命令:

npm add element-plus

如果添加命令報錯:
ERROR TypeError: Cannot read properties of undefined (reading 'replace')
表明element-plus沒有刪除干凈
執(zhí)行命令:

npm uninstall element-plus

在main.ts中刪除應用element-plus的代碼

7遭庶、按需引入element-plus 組件

按需引入element-plus
參考官方文檔

npm install -D unplugin-vue-components unplugin-auto-import

Vite

// vite.config.ts
import { defineConfig } from 'vite'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'

export default defineConfig({
  // ...
  plugins: [
    // ...
    AutoImport({
      resolvers: [ElementPlusResolver()],
    }),
    Components({
      resolvers: [ElementPlusResolver()],
    }),
  ],
})

引入圖標庫

npm install @element-plus/icons-vue

main.ts

// 如果您正在使用CDN引入,請刪除下面一行稠屠。
import * as ElementPlusIconsVue from '@element-plus/icons-vue'

const app = createApp(App)
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
  app.component(key, component)
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末峦睡,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子权埠,更是在濱河造成了極大的恐慌榨了,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件弊知,死亡現(xiàn)場離奇詭異阻逮,居然都是意外死亡,警方通過查閱死者的電腦和手機秩彤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進店門叔扼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人漫雷,你說我怎么就攤上這事瓜富。” “怎么了降盹?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵与柑,是天一觀的道長。 經常有香客問我蓄坏,道長价捧,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任涡戳,我火速辦了婚禮结蟋,結果婚禮上,老公的妹妹穿的比我還像新娘渔彰。我一直安慰自己嵌屎,他們只是感情好推正,可當我...
    茶點故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著宝惰,像睡著了一般植榕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上尼夺,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天尊残,我揣著相機與錄音,去河邊找鬼汞斧。 笑死夜郁,一個胖子當著我的面吹牛,可吹牛的內容都是我干的粘勒。 我是一名探鬼主播竞端,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼庙睡!你這毒婦竟也來了事富?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤乘陪,失蹤者是張志新(化名)和其女友劉穎统台,沒想到半個月后绷杜,有當地人在樹林里發(fā)現(xiàn)了一具尸體尚辑,經...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年蜀细,在試婚紗的時候發(fā)現(xiàn)自己被綠了谤逼。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片贵扰。...
    茶點故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖流部,靈堂內的尸體忽然破棺而出戚绕,到底是詐尸還是另有隱情,我是刑警寧澤枝冀,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布舞丛,位于F島的核電站,受9級特大地震影響果漾,放射性物質發(fā)生泄漏球切。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一绒障、第九天 我趴在偏房一處隱蔽的房頂上張望吨凑。 院中可真熱鬧,春花似錦端盆、人聲如沸怀骤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蒋伦。三九已至,卻和暖如春焚鹊,著一層夾襖步出監(jiān)牢的瞬間痕届,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工末患, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留研叫,地道東北人。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓璧针,卻偏偏與公主長得像嚷炉,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子探橱,可洞房花燭夜當晚...
    茶點故事閱讀 44,976評論 2 355

推薦閱讀更多精彩內容