用vscode開發(fā)vue應(yīng)用的方法步驟
現(xiàn)在用VSCode開發(fā)Vue.js應(yīng)用幾乎已經(jīng)是前端的標(biāo)配了,但很多時(shí)候我們看到的代碼混亂不堪,作為一個(gè)前端工程師,單引號(hào)雙引號(hào)亂用,一段有分號(hào)一段沒有分號(hào),有的地方有逗號(hào)有的地方?jīng)]有逗號(hào),空格回車都對(duì)不齊,還說自己做事認(rèn)真,這不是開玩笑的事情。
我們今天從頭開始,完整地講述一下一個(gè)重度代碼潔癖患者該如何用vscode
開發(fā)vue
,以及如何把一個(gè)已經(jīng)可以宣判死刑的全身各種格式錯(cuò)誤幾萬(wàn)條的項(xiàng)目整容成標(biāo)準(zhǔn)美女。
從安裝開始
為了準(zhǔn)確起見,我們把vscode
里所有插件全部禁用,把用戶設(shè)置清空,以讓它盡可能恢復(fù)成原始的樣子:
作為代碼潔癖患者,對(duì)于系統(tǒng)的版本要求一定也是最苛刻的,不管什么時(shí)候,都讓我們把所有的系統(tǒng)能升級(jí)的都升級(jí)到最高版本:
npm install -g @vue/cli
然后,我們開始創(chuàng)建項(xiàng)目:
vue create hello-world
在這里,一定要選擇第一項(xiàng):babel + eslint
,這兩個(gè)是必不可少的。我見到有些人嫌eslint
麻煩,居然在項(xiàng)目建立好之后手工把eslint
關(guān)掉的,簡(jiǎn)直無(wú)語(yǔ)。
安裝完畢:
我們先不急著執(zhí)行,執(zhí)行代碼是最容易的事情,我們先打開代碼看一下:
好吧,至少我們需要先安裝vetur插件。這幾乎已經(jīng)確定是開發(fā)vue
項(xiàng)目的標(biāo)配了,即使我不說,vscode
也會(huì)強(qiáng)烈建議你安裝它。
裝上vetur
以后多少有點(diǎn)人樣了。接下來(lái)我們來(lái)試一試能不能自動(dòng)格式化,這部分才是潔癖患者的最愛。胡亂加幾個(gè)空格,然后保存試試看:
不能格式化,連個(gè)提示都沒有!
用lint格式化
就算vscode
里的vetur
不能幫我們自動(dòng)格式化,好在package.json
命令里還有一個(gè)lint
命令,我們看看lint
命令能不能幫我們自動(dòng)格式化:
lint
居然說沒有錯(cuò)誤!明明就是多了很多空格的錯(cuò)誤好吧,為什么?
這是因?yàn)槿笔〉?code>vue-cli沒有為我們安裝@vue/prettier
插件,我們先來(lái)手工安裝一下:
yarn add -D @vue/eslint-config-prettier
然后在package.json
或者.eslintrc.js
或者其它什么你設(shè)置eslint
的地方,給它加上:
"extends": [ "plugin:vue/essential", "eslint:recommended", "@vue/prettier" ],
特別是最后這一個(gè)@vue/prettier
,非常重要。然后再執(zhí)行yarn lint
。多余的空格被自動(dòng)干掉了,但是我們發(fā)現(xiàn)有一些地方同時(shí)也被篡改了:
所有的單引號(hào)被變成雙引號(hào)了,原本行尾沒有的分號(hào)被加上了分號(hào)。這是為什么呢?因?yàn)槲覀冸m然引入了prettier
,但是還沒有對(duì)prettier
做設(shè)置,我們?cè)陧?xiàng)目的根目錄下創(chuàng)建一個(gè).prettierrc.js
文件,然后在其中加入:
module.exports = { semi: false, singleQuote: true }
再次執(zhí)行yarn lint
,現(xiàn)在我們看到lint
已經(jīng)能夠起作用了。它不但能把我們多余插入的空格刪掉,并且能按照規(guī)則把雙引號(hào)變成單引號(hào),把行尾多余的分號(hào)刪掉。當(dāng)然,關(guān)于行尾加不加分號(hào)這是一個(gè)哲學(xué)命題,你可以根據(jù)你個(gè)人的喜好自行決定。在這里,我們權(quán)且按照vue-cli的標(biāo)配執(zhí)行。
到這一步很關(guān)鍵,假設(shè)你拿到一個(gè)爛的不再爛的vue
項(xiàng)目,里面有幾千個(gè).vue
文件,幾萬(wàn)個(gè)各種格式錯(cuò)誤,也都能通過yarn lint
這一行命令把它們?nèi)啃拚^來(lái)!
在vscode里格式化
事情還沒有完,我們注意到雖然yarn lint
命令能在編寫完代碼之后幫我們格式化,但是既然我們是用vscode
進(jìn)行開發(fā),我們當(dāng)然希望能在vscode
里直接看到對(duì)于錯(cuò)誤的標(biāo)注。
這時(shí)候我們需要在vscode
里再安裝一個(gè)插件eslint。
你以為安裝上eslint
插件就行了嗎?不行的。因?yàn)?code>eslint并不知道我們的.vue
文件里面包含了js
語(yǔ)法,所以還需要打開我們的vscode
設(shè)置文件。
注意:這里一定要設(shè)置到項(xiàng)目的設(shè)置里,而不要只是設(shè)置到你自己個(gè)人的設(shè)置里,否則你團(tuán)隊(duì)的小伙伴隨便一改又亂掉了。正確的方法是在你項(xiàng)目的文件夾下有一個(gè).vscode
文件夾,而vue
最討厭的地方是它居然會(huì)把這個(gè)文件夾放到.gitignore
里,這個(gè)錯(cuò)誤你必須要糾正過來(lái),也就是說從.gitignore
文件里把.vscode
刪掉。切切。
在你項(xiàng)目的settings.json
里文件里添加以下代碼:
{ "eslint.autoFixOnSave": true, "eslint.validate": [ "javascript", "javascriptreact", { "language": "vue", "autoFix": true } ], }
這時(shí)候所有錯(cuò)誤都被標(biāo)注出來(lái)了,注意看左側(cè),一定要讓這個(gè)settings.json
文件是綠色的,而不能是灰色的,如果是灰色的,請(qǐng)檢查你的.gitignore
文件:
因?yàn)槲覀冊(cè)?code>settings.json文件里設(shè)置了autoFixOnSave
,所以不管多么亂的格式,只要一按Ctrl+S
保存,自動(dòng)就幫我們把代碼格式整理好了,是不是很方便呢?
和Prettier的沖突
有些時(shí)候我們的vscode
里插件裝的比較多,譬如還安裝了prettier插件,因?yàn)槲覀儾恢婚_發(fā)vue
項(xiàng)目,可能還有其它類型的js
項(xiàng)目特別是傳統(tǒng)js
項(xiàng)目,需要用到prettier
進(jìn)行美化,而prettier
的一些功能是會(huì)和eslint
相沖突的,比如說我們?cè)谌衷O(shè)置了prettier
的formatOnSave
,這個(gè)功能就會(huì)和eslint
的autoFixOnSave
打架,為了避免這個(gè)矛盾,我們通常還會(huì)在本項(xiàng)目的settings.json
文件里再多加幾個(gè)選項(xiàng),類似于這樣:
"editor.tabSize": 2, "editor.formatOnSave": false, "prettier.semi": false, "prettier.singleQuote": true
有了這些設(shè)置,基本上prettier
就不會(huì)和eslint
打架了。
小結(jié)
以上就是用vscode
開發(fā)vue
程序的標(biāo)配,并不像網(wǎng)上有些文章說的那么簡(jiǎn)單,不是只需要配一個(gè)eslint
就能解決的事情,這里還用到了vetur
,eslint
和prettier
,把幾個(gè)工具綜合用好,才能真正達(dá)到我們的錯(cuò)誤隨時(shí)可見,保存自動(dòng)修改,更正既往錯(cuò)誤的目的。希望每個(gè)前端工程師寫出的代碼都如出一人之手,漂亮簡(jiǎn)潔干凈。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
vue 計(jì)時(shí)器組件的實(shí)現(xiàn)代碼
本篇文章主要介紹了vue 計(jì)時(shí)器組件的實(shí)現(xiàn)代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2017-09-09關(guān)于在vue中實(shí)現(xiàn)過渡動(dòng)畫的代碼示例
Vue是一款流行的前端框架,支持過渡動(dòng)畫的實(shí)現(xiàn)是其中的一項(xiàng)重要特性,在Vue中,使用過渡動(dòng)畫可以為用戶提供更加友好的用戶體驗(yàn),下面我將為大家介紹一下子如何在Vue中實(shí)現(xiàn)過渡動(dòng)畫,需要的朋友可以參考下2023-06-06Vue實(shí)現(xiàn)移除數(shù)組中特定元素的方法小結(jié)
這篇文章主要介紹了Vue如何優(yōu)雅地移除數(shù)組中的特定元素,文中介紹了單個(gè)去除和批量去除的操作方法,并通過代碼示例講解的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下2024-03-03關(guān)于el-table表格組件中插槽scope.row的使用方式
這篇文章主要介紹了關(guān)于el-table表格組件中插槽scope.row的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08vue實(shí)踐---根據(jù)不同環(huán)境,自動(dòng)轉(zhuǎn)換請(qǐng)求的url地址操作
這篇文章主要介紹了vue實(shí)踐---根據(jù)不同環(huán)境,自動(dòng)轉(zhuǎn)換請(qǐng)求的url地址操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2020-09-09Vue3+Hooks實(shí)現(xiàn)4位隨機(jī)數(shù)和60秒倒計(jì)時(shí)的示例代碼
Vue3的Hooks是一種新的 API,本文主要介紹了Vue3+Hooks實(shí)現(xiàn)4位隨機(jī)數(shù)和60秒倒計(jì)時(shí)的示例代碼,具有一定的參考價(jià)值,感興趣的可以了解一下2024-04-04vue實(shí)現(xiàn)實(shí)時(shí)上傳文件進(jìn)度條
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)實(shí)時(shí)上傳文件進(jìn)度條,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03