使用 Eslint & standard 規範前端程式碼
阿新 • • 發佈:2019-09-25
前言
JavaScript的動態語言型別,給它帶來了獨特的魅力,產生了風格多樣的開發正規化,同時也帶來了一些問題,從執行時常見的 undefined 、null 報錯,到程式碼隨意的加減分號、換行、空格,引起的視覺混亂,如果是團隊開發,則這種情況會更加的嚴重,必須加以約束,下文介紹基於 vue 的程式碼嚴格模式及程式設計規範。 核心外掛: Eslint + standardEslint 是什麼?
ESLint最初是由Nicholas C. Zakas 於2013年6月建立的開源專案。它的目標是提供一個外掛化的javascript程式碼檢測工具。與它類似的專案有 JSLint、JSHint。ESLint 的安裝與配置
一、vue-cli3 初始化引入ESLint 如果是用 vue-cli3 初始化搭建專案,可以在命令列中執行 vue ui 開啟vue-cli3 新增的圖形化介面,以建立和管理專案;預設是配置了 babel + eslint ,也可以手動執行專案配置以引入更多特性,如router、vuex 、scss、typescript、unit測試、e2e測試; 如果是後期引入 ESLint,則需要手動安裝下圖所示的幾個與 ESLint 相關的外掛,安裝指令為vue add @vue/eslint
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 的選項的,直接選擇就可以了。
常見問題
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單檔案的檢測&n