使用VSCode搭建UniApp + TS + Vue3 + Vite項目

uniapp是一個使用Vue.js開發(fā)所有前端應(yīng)用的框架,開發(fā)者編寫一套代碼,可發(fā)布到iOS熙暴、Android、以及各種小程序慌盯。深受廣大前端開發(fā)者的喜愛怨咪。uniapp官方也提供了自己的IDE工具HBuilderX,可以快速開發(fā)uniapp項目润匙。但是很多前端的同學(xué)已經(jīng)比較習(xí)慣使用VSCode去開發(fā)項目诗眨,為了開發(fā)uniapp項目再去切換開發(fā)工具,而且對新的開發(fā)工具也要有一定的適應(yīng)過程孕讳,大多數(shù)前端的同學(xué)肯定是不愿意的匠楚。下面我們就看看用VSCode如何搭建uniapp項目。

安裝node和pnpm

node的安裝我就不多說了厂财,去官網(wǎng)下載芋簿,直接安裝就可以了。node安裝好以后璃饱,我們再來安裝pnpm与斤。咦?node安裝完不是自帶npm嗎?這個pnpm又是啥撩穿?這里簡單介紹一下npmpnpm的區(qū)別磷支,不做重點。使用 npm 時食寡,依賴每次被不同的項目使用雾狈,都會重復(fù)安裝一次。 而在使用pnpm時抵皱,依賴會被存儲在一個公共的區(qū)域,不同的項目在引入相同的依賴時移盆,會從公共區(qū)域去引入伤为,節(jié)省了空間咒循。

pnpm我們直接全局安裝就可以了剑鞍,執(zhí)行以下的命令:

npm install -g pnpm

安裝好以后昨凡,我們在命令行執(zhí)行pnpm -v,能夠看到版本號就說明安裝成功了沥阳。

創(chuàng)建uniapp項目

由于我們要使用VSCode去開發(fā)項目,而且項目要使用Vue3TypeScript晌杰,所以我們要使用命令行去創(chuàng)建uniapp項目抑诸。先進入我們存放VSCode的項目目錄蜕乡,我的項目目錄是D:\VSProjects层玲,進入后辛块,執(zhí)行命令如下:

npx degit dcloudio/uni-preset-vue#vite-ts 項目名稱

項目名稱寫你自己真實的項目名稱就可以了父虑,我的項目叫做my-vue3-uniapp士嚎。這個命令會把官方提供的使用了TypeScriptViteuniapp項目模板下載下來莱衩,然后我們就可以去開發(fā)uniapp項目了。

我們使用VSCode打開項目括细,項目的目錄如下:

image-20240910201316280.png

我們可以看到src目錄里的文件都是uniapp項目的文件,包括頁面览濒、樣式贷笛、靜態(tài)文件等,src目錄外是整個項目的文件汇荐,如:vite.config.tstsconfig.json等拢驾。然后我們打開終端繁疤,使用pnpm命令安裝一下依賴躁染,執(zhí)行命令如下:

pnpm i

執(zhí)行完成后吞彤,我們熟悉的node_modules目錄出現(xiàn)在了項目中饰恕,如圖:

image-20240910201915353.png

然后我們運行項目,執(zhí)行命令如下:

pnpm run dev:mp-weixin

上面的命令會把我們的代碼編譯成微信小程序代碼,如圖:

image-20240910202443268.png

編譯完成后,我們的項目中出現(xiàn)了dist目錄泊藕,這個目錄就是編譯后的輸出目錄吱七。然后我們打開微信小程序開發(fā)工具,目錄選擇/dist/dev/mp-weixin,如圖:

image-20240910202838634.png

AppID寫我們自己的小程序的AppID吧寺,點擊確定,

image-20240910203040972.png

看到這個畫面赖条,說明我們的uniapp項目搭建成功了碱茁,而且可以通過微信小程序開發(fā)工具去預(yù)覽纽竣。我們可以通過VSCode在頁面上添加些文字蜓氨,看看微信小程序開發(fā)工具的畫面是否有改變。這里就不給大家演示了刀荒。

添加uni-ui擴展組件

在我們開發(fā)項目時,會用到各種組件泼返,僅僅使用uniapp的內(nèi)置組件是遠遠不夠的绅喉,我們還需安裝官方提供的擴展組件uni-ui柴罐,怎么安裝呢?我們同樣使用pnpm命令去安裝似芝,在具體安裝uni-ui擴展組件之前党瓮,我們先需要安裝sasssass-loader痕寓,

安裝sass

 pnpm i sass -D

安裝sass-loader

pnpm i sass-loader@v8.x

由于現(xiàn)在的node版本都是大于16的,所以礼仗,我們根據(jù)uniapp官方的建議元践,安裝v8.x的版本。

最后我們安裝uni-ui象浑,如下:

pnpm i @dcloudio/uni-ui

uni-ui安裝完成后,我們再配置easycom蚪拦,easycom的好處是,可以自動引入uni-ui組件括袒,無需我們手動import类垦,這對于我們開發(fā)項目來說非常的方便米苹,我們打開src目錄下的 pages.json 并添加 easycom 節(jié)點:

// pages.json
{
    "easycom": {
        "autoscan": true,
        "custom": {
            // uni-ui 規(guī)則如下配置
            "^uni-(.*)": "@dcloudio/uni-ui/lib/uni-$1/uni-$1.vue"
        }
    },
    
    // 其他內(nèi)容
    pages:[
        // ...
    ]
}

這樣uni-ui擴展組件就添加到我們的項目中了良瞧。

Json文件的注釋

我們在添加easycom的時候褥蚯,發(fā)現(xiàn)pages.json文件中的注釋是有錯誤提示的,我們想讓Json文件中可以有注釋,至少pages.jsonmanifest.json兩個文件這種可以有注釋摊册,這個我們需要在VSCode中配置一下,打開文件->首選項->設(shè)置温治,如圖:

image-20240910205931299.png

然后我們在文本編輯器中找到文件绸狐,再在Associations中添加項寒矿,如下:

image-20240910210055338.png

然后我們回到pages.jsonmanifest.json這兩個文件看一下,注釋就不報錯了镜豹。

VSCode插件安裝

到現(xiàn)在為止,我們的uniapp項目已經(jīng)搭建起來了已卸,而且已經(jīng)可以正常運行了,兩個比較重要的json文件中永乌,注釋文字也不報錯了。但這離我們正常開發(fā)還差很多望几,我們在使用uniapp組件的時候,沒有提示,這使得我們編寫程序很不方便疟羹,我們可以安裝幾個uniapp插件解決這些問題。我們在VSCode的擴展商店中搜索一下uniapp,這里需要安裝3個插件:

  • uniapp小程序擴展
  • uni-create-view
  • uni-helper

安裝完之后力九,我們在編寫頁面時,會有提示:

image-20240910211248220.png

在新建頁面時,會有uniapp相關(guān)的選項:

image-20240910211328112.png

這些對于我們實際開發(fā)是非常由幫助的。

安裝uniapp的types

我們可以看到vue文件中,uniapp的組件并沒有變綠掏缎,說明ts是沒有生效的,我們先把uniapp的類型文件安裝一下酌儒,如下:

pnpm i -D @uni-helper/uni-app-types @uni-helper/uni-ui-types

我們在使用pnpm安裝時,會報錯,我們根據(jù)uni-helper的官方文檔中的提示鸥印,將 shamefully-hoisttrue。這個需要我們找到家目錄下的.npmrc文件璃弄,如圖:

image-20240910213137695.png

然后在文件中增加:

registry=http://registry.npm.taobao.org
shamefully-hoist=true

然后纤掸,我們再執(zhí)行pnpm命令安裝類型文件政己。安裝完成后卵牍,在項目根目錄下,打開tsconfig.json文件释牺,在types中增加我們安裝的類型:

{
  "extends": "@vue/tsconfig/tsconfig.json",
  "compilerOptions": {
    ……
    "types": [
      "@dcloudio/types",
      "@uni-helper/uni-app-types",
      "@uni-helper/uni-ui-types"
    ]
  }
    ……
}

添加完成后,我們發(fā)現(xiàn)compilerOptions是有報錯的,鼠標懸停上去發(fā)現(xiàn):

image-20240910213738482.png

報錯提示兩個選項將要廢棄,我們要把這個錯誤提示去掉,可以在文件中增加"ignoreDeprecations": "5.0",

{
  "extends": "@vue/tsconfig/tsconfig.json",
  "compilerOptions": {
    "ignoreDeprecations": "5.0",
   ……
  },
  "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"]
}

這樣compilerOptions就不報錯了。然后我們打開vue文件陌凳,發(fā)現(xiàn)uniapp的標簽都變綠了,但是會有報錯,這個VSCode的插件之間有沖突造成的崔梗,我們可以配置如下解決,參考官方文檔:

image-20240910215439960.png
{
  ……
  "vueCompilerOptions": {
    "plugins": ["@uni-helper/uni-app-types/volar-plugin"]
  },
  ……
}

然后重啟VSCode。最后我們發(fā)現(xiàn)vue文件的uniapp標簽變綠了谦铃,而且沒有報錯:

image-20240910215154651.png

最后tsconfig.json的整體內(nèi)容如下:

{
  "extends": "@vue/tsconfig/tsconfig.json",
  "compilerOptions": {
    "ignoreDeprecations": "5.0",
    "sourceMap": true,
    "baseUrl": ".",
    "paths": {
      "@/*": ["./src/*"]
    },
    "lib": ["esnext", "dom"],
    "types": [
      "@dcloudio/types",
      "@uni-helper/uni-app-types",
      "@uni-helper/uni-ui-types"
    ]
  },
  "vueCompilerOptions": {
    "plugins": ["@uni-helper/uni-app-types/volar-plugin"]
  },
  "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"]
}

最后

到這里,我們的uniapp項目就搭建完成了诵肛,而且是使用我們非常熟悉的VSCode,項目中還是用了Vue3Typescript乙埃,Vite锯岖,該裝的插件也已經(jīng)裝上了介袜,鼠標懸停會給我們組件的提示,大大提高了我們的開發(fā)效率出吹。OK了遇伞,去開發(fā)我們的項目應(yīng)用吧~~~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末捶牢,一起剝皮案震驚了整個濱河市鸠珠,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌叫确,老刑警劉巖跳芳,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異竹勉,居然都是意外死亡飞盆,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來吓歇,“玉大人孽水,你說我怎么就攤上這事〕强矗” “怎么了女气?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長测柠。 經(jīng)常有香客問我炼鞠,道長,這世上最難降的妖魔是什么轰胁? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任谒主,我火速辦了婚禮,結(jié)果婚禮上赃阀,老公的妹妹穿的比我還像新娘霎肯。我一直安慰自己,他們只是感情好榛斯,可當(dāng)我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布观游。 她就那樣靜靜地躺著,像睡著了一般驮俗。 火紅的嫁衣襯著肌膚如雪懂缕。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天意述,我揣著相機與錄音提佣,去河邊找鬼。 笑死荤崇,一個胖子當(dāng)著我的面吹牛拌屏,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播术荤,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼倚喂,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了瓣戚?” 一聲冷哼從身側(cè)響起端圈,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎子库,沒想到半個月后舱权,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡仑嗅,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年宴倍,在試婚紗的時候發(fā)現(xiàn)自己被綠了张症。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡鸵贬,死狀恐怖俗他,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情阔逼,我是刑警寧澤兆衅,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站嗜浮,受9級特大地震影響羡亩,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜周伦,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一夕春、第九天 我趴在偏房一處隱蔽的房頂上張望未荒。 院中可真熱鬧专挪,春花似錦、人聲如沸片排。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽率寡。三九已至迫卢,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間冶共,已是汗流浹背乾蛤。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留捅僵,地道東北人家卖。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像庙楚,于是被迫代替她去往敵國和親上荡。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,877評論 2 345

推薦閱讀更多精彩內(nèi)容