前言
JavaScript的動(dòng)態(tài)語(yǔ)言類型,給它帶來(lái)了獨(dú)特的魅力,產(chǎn)生了風(fēng)格多樣的開發(fā)范式,同時(shí)也帶來(lái)了一些問(wèn)題,從運(yùn)行時(shí)常見(jiàn)的 undefined 、null 報(bào)錯(cuò),到代碼隨意的加減分號(hào)、換行、空格,引起的視覺(jué)混亂,如果是團(tuán)隊(duì)開發(fā),則這種情況會(huì)更加的嚴(yán)重,必須加以約束,下文介紹基于 vue 的代碼嚴(yán)格模式及編程規(guī)范。 核心插件: Eslint + standardEslint 是什么?
ESLint最初是由Nicholas C. Zakas 于2013年6月創(chuàng)建的開源項(xiàng)目。它的目標(biāo)是提供一個(gè)插件化的javascript代碼檢測(cè)工具。與它類似的項(xiàng)目有 JSLint、JSHint。 使用 ESLint 可以保證代碼的一致性和避免錯(cuò)誤,接下來(lái)介紹 ESLint 的使用。ESLint 的安裝與配置
一、vue-cli3 初始化引入ESLint 如果是用 vue-cli3 初始化搭建項(xiàng)目,可以在命令行中執(zhí)行 vue ui 打開vue-cli3 新增的圖形化界面,以創(chuàng)建和管理項(xiàng)目;默認(rèn)是配置了 babel + eslint ,也可以手動(dòng)執(zhí)行項(xiàng)目配置以引入更多特性,如router、vuex 、scss、typescript、unit測(cè)試、e2e測(cè)試; 如果是后期引入 ESLint,則需要手動(dòng)安裝下圖所示的幾個(gè)與 ESLint 相關(guān)的插件,安裝指令為vue add @vue/eslint提示: vue add 的設(shè)計(jì)意圖是為了安裝和調(diào)用 Vue CLI 插件。對(duì)于普通的 npm 包而言,這不意味有一個(gè)替代(命令)。對(duì)于這些普通的 npm 包,你仍然需要(根據(jù)所選的 npm 包)使用包管理器。 vue add @eslint 會(huì)依次執(zhí)行安裝和調(diào)用兩條命令,并智能生成需要的配置文件,可能會(huì)修改項(xiàng)目當(dāng)前文件內(nèi)容,所以在運(yùn)行 vue add 前,需要先保存提交下項(xiàng)目當(dāng)前狀態(tài);vue add 的好處在于,可以調(diào)用 vue cli 插件,比如我只是執(zhí)行了 vue add @vue/eslint 一條指令,安裝后根據(jù)命令行的提示,會(huì)幫助你匹配安裝剩下的所有 eslint 配置,而不需要自己再一條條安裝了。 安裝完成后,可以在根目錄發(fā)現(xiàn)多了一個(gè) .eslintrc.js 文件,這是 eslint 的配置文件,可以配置自定義規(guī)則(rules)等。 二、通用項(xiàng)目引入 ESLint 如果項(xiàng)目不是基于vue-cli3 或者 vue,則需要以 npm 包管理器安裝 eslint,安裝完成后在 ./node_modules/.bin/ 目錄下執(zhí)行 eslint --init 命令,根據(jù)指引生成所需的 eslint 配置方案;這里可以選擇應(yīng)用于 vue 或者其它例如 react 項(xiàng)目。
npm install eslint --save-dev // 安裝并保存到項(xiàng)目開發(fā)依賴 ./node_modules/.bin/eslint -- --init // 初始化命令安裝完成后,可以在 package.json 的 script 中配置 lint 命令,以執(zhí)行eslint 校驗(yàn)。
"lint": "vue-cli-service lint" //基于vue-cli3 "lint": "eslint --ext .js,.vue src test/unit/specs test/e2e/specs" // 非vue-cli3
編碼規(guī)范 Standard 的安裝與使用
應(yīng)用了 ESLint 后,通常是需要自己來(lái)配置繁雜的 rules 規(guī)則,這也是一個(gè)喜好類的東西,多數(shù)人是不愿意在這上面耗費(fèi)太多精力的(比如手動(dòng)配置數(shù)百個(gè)ESLint 規(guī)則),于是github 上出現(xiàn)了一些開源的代碼規(guī)范庫(kù),比較流行的有 airbnb、standard、prettier等,下面介紹下 standard在 vue 中的使用方式:
在 vue 中通常需要和 ESLint 一起使用,上面講到 ESLint 時(shí)候有注意到么,ESLint 初始化指令中有一個(gè)選擇開源編碼規(guī)范的指令,系統(tǒng)默認(rèn)是有 standard 的選項(xiàng)的,直接選擇就可以了。
,【碎他】【有虎】【本就】【機(jī)會(huì)】【個(gè)性】【很不】【間都】【無(wú)盡】【強(qiáng)者】【族沒(méi)】【她那】【好東】【撲面】【體異】1938年為了守住山西,川軍47軍將士在李家鈺將軍的率領(lǐng)下,在東陽(yáng)關(guān)死守3日犧牲兩千余人。9月30日首個(gè)國(guó)家烈士紀(jì)念日前后,《華西都市報(bào)》連續(xù)報(bào)道了東陽(yáng)關(guān)戰(zhàn)役后,抗戰(zhàn)老兵的系列報(bào)道引起了百度霸屏不少人的關(guān)注。家住巴中市平昌縣97歲陳海才老人看了本報(bào)的報(bào)道后,把自己埋藏在心底的秘密告訴了家人,“我當(dāng)年也在東陽(yáng)關(guān)打過(guò)鬼子,現(xiàn)在要入土了,想見(jiàn)見(jiàn)當(dāng)年的戰(zhàn)友?!背脤?duì)方做雞蛋餅的間隙,記者和攤主聊了起來(lái),她告訴記者她姓董,在這里賣雞蛋餅已經(jīng)10多年了,附近人都喜歡吃她做的雞蛋餅。“我用的材料都很實(shí)在,大家都能看得到,也吃得放心?!闭f(shuō)起自己的雞蛋餅,董阿姨說(shuō)真的沒(méi)什么秘訣,主要是自己材料放得足,貨真價(jià)實(shí)。“賺不到多少錢,就圖個(gè)開心。,常見(jiàn)問(wèn)題
1、配置了 ESLint + standard 但是不生效? 在項(xiàng)目根目錄里找到 .eslintrc.js 文件,注意 extends 和 plugins 屬性是否配置,下圖的extends 代表 ESLint 繼承了standard 的編碼規(guī)范。 2、只是 .js 文件生效了, .vue 文件沒(méi)有效果 ? .vue 文件的校驗(yàn),需要注意你的 package.json 是否安裝了 eslint-plugin-html 插件,并且在 .eslintrc.js 中配置了 plugins; 如果是用 vscode 編輯器開發(fā),需安裝 ESLint、Vetur 這兩個(gè) vscode 插件,并在 設(shè)置 =》 settings.json 文件中添加以下配置,然后重啟下 vscode,即可生效。"files.associations": {
"*.vue": "vue"
},
"eslint.autoFixOnSave": true,
"eslint.validate": [
"javascript",
"javascriptreact",
{
"language": "vue",
"autoFix": true
},"html","vue"
]
3、配置了 standard 后,還能自定義 rules 嗎? standard 本身是不贊成這樣做的,如果你一定要使用 standard 并需要對(duì)其中某些規(guī)則進(jìn)行自定義的話,你需要使用 eslint-config-standard,當(dāng)然, 在上面我們執(zhí)行的 ESLint init 指令安裝的配置中,就是以這種形式使用standard 的。
總結(jié)
本文介紹了用于前端編碼規(guī)范、代碼質(zhì)量管理的幾個(gè)開源方案,搭建了基于 vue 的 ESLint + standard 方案,及對(duì)實(shí)際使用當(dāng)中可能遇到的問(wèn)題,進(jìn)行了記錄。
參考鏈接
1、 VSCode環(huán)境下配置ESLint 對(duì)Vue單文件的檢測(cè)|轉(zhuǎn)載請(qǐng)注明來(lái)源地址:蜘蛛池出租 http://www.wholesalehouseflipping.com/
專注于SEO培訓(xùn),快速排名黑帽SEO https://www.heimao.wiki
