vue-cli的eslint相關用法
ESLint簡介
關于ESLint的介紹網(wǎng)上很多,這里就簡單說些有用的。
ESLint的作用是檢查代碼錯誤和統(tǒng)一代碼風格的。由于每個人寫代碼的習慣都會有所不同,所以統(tǒng)一代碼風格在團隊協(xié)作中尤為重要。
vue-cli的eslint相關
vue-cli在init初始化時會詢問是否需要添加ESLint,確認之后在創(chuàng)建的項目中就會出現(xiàn).eslintignore和.eslintrc.js兩個文件。
- .eslintignore類似Git的.gitignore用來忽略一些文件不使用ESLint檢查。
- .eslintrc.js是ESLint配置文件,用來設置插件、自定義規(guī)則、解析器等配置。
.eslintrc.js
// http://eslint.org/docs/user-guide/configuring module.exports = { root: true, parser: 'babel-eslint', parserOptions: { sourceType: 'module' }, env: { browser: true, }, // https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style extends: 'standard', // required to lint *.vue files plugins: [ 'html' ], // add your custom rules here 'rules': { // allow paren-less arrow functions 'arrow-parens': 0, // allow async-await 'generator-star-spacing': 0, // allow debugger during development 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0 } }
解析器(parser):使用了babel-eslint,這個可以在package.json中找到,說明我們已經(jīng)安裝過該解析器了。
環(huán)境配置(env):在瀏覽器中使用eslint。
繼承(extends):該配置文件繼承了standard規(guī)則,具體規(guī)則自己看文檔,看不懂有中文版的。
規(guī)則(rules):對于三個自定義規(guī)則,我特地查了官方文檔。
- arrow-parems 允許箭頭函數(shù)參數(shù)使用括號,具體操作請看文檔
- generator-star-spacing 允許方法之間加星號,如function * generator() {}。文檔在此。特地查了下,發(fā)現(xiàn)這是ES6提供的生成器函數(shù),回頭學習下。
- no-debugger' 允許在開發(fā)環(huán)境下使用debugger。這個比較簡單,不過還是貼下文檔便于查看。
注意:在rules中每個配置項后面第一個值是eslint規(guī)則的錯誤等級。
* “off” 或 0 - 關閉這條規(guī)則
* “warn” 或 1 - 違反規(guī)則會警告(不會影響項目運行)
* “error” 或 2 - 違反規(guī)則會報錯(屏幕上一堆錯誤代碼~)
遇到過的問題
由于一開始我不了解ESLint就寫項目,不知道要看Standard的文檔,所以遇到了很多ESLint的錯誤和警告,分享下希望能對朋友們有幫助。
1. Do not use ‘new' for side effects
該錯誤是由于我刪除了/* eslint-disable no-new*/這段注釋引發(fā)的,/* eslint-disable */這段注釋的作用就是不讓eslint檢查注釋下面的代碼。
new Vue({ el: '#app', router, template: '<App/>', components: { App } })
錯誤原因:不可以直接new一個新對象,需要將新對象賦值給一個變量。
var vm = new Vue()
2. Strings must use singlequote
錯誤原因:字符串必須用單引號
return { msg: "Welcome to Your Vue.js App", //雙引號,報錯! }
3. Expected space(s) after “return”
錯誤原因:括號兩側必須要有空格隔開
return{// 沒有空格報錯 msg: 'Welcome to Your Vue.js App', } startClock (){} //){中間沒有空格,報錯!
4. Expected indentation of 8 spaces but found 6
錯誤原因:使用兩個空格進行縮進。
if (this.IntervalID === '') { this.IntervalID = setInterval(this.countDown, 1000) }
其實ESLint的報錯并不難懂,只要理解錯誤原因還是很好解決的。如果提前看看文檔,更不會出現(xiàn)太多報錯問題了。這個故事告訴我們看文檔是很重要滴~%>_<%
Tips
發(fā)現(xiàn)ESLint的報錯都會在報錯語句前面顯示一個URL,點擊進去可以看到詳細的錯誤信息哦。這是我剛在寫博客的時候發(fā)現(xiàn)的。
http://eslint.org/docs/rules/no-new Do not use 'new' for side effects E:\Github\EfficiencyTools\EfficiencyTool-VueMobile\src\main.js:15:1 new Vue({
這里的 http://eslint.org/docs/rules/no-new 就是ESLint規(guī)則報錯的原因,還是很人性化的。
總結
其實vue-cli的ESLint不需要我們配置太多,基本的都配置好了,如果你愿意完全可以照著vue-cli提供的規(guī)則去寫代碼。當我們需要修改一些規(guī)則的時候添加到rules中替換原有規(guī)則就可以了。一開始用ESLint寫代碼很煩,經(jīng)常由于一些格式問題調試報錯,讓回去改格式。不過慢慢的就會發(fā)現(xiàn)使用ESLint之后代碼的確可讀性、美觀性上都好了很多。
推薦使用ESLint來規(guī)范代碼編輯~
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
解決vue-cli webpack打包開啟Gzip 報錯問題
這篇文章主要介紹了vue-cli webpack打包開啟Gzip 報錯問題的解決方法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-07-07uni-app自定義導航欄按鈕|uniapp仿微信頂部導航條功能
這篇文章主要介紹了uni-app自定義導航欄按鈕|uniapp仿微信頂部導航條,需要的朋友可以參考下2019-11-11Vue中l(wèi)ocalStorage的用法和監(jiān)聽localStorage值的變化
這篇文章主要介紹了Vue中l(wèi)ocalStorage的用法和監(jiān)聽localStorage值的變化,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-04-04