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