這次帶給大家EsLint新手入門須知,EsLint新手入門須知的注意事項(xiàng)有哪些,下面就是實(shí)戰(zhàn)案例,一起來看一下。
介紹
??ESLint 是一個(gè)插件化的javascript 程式碼偵測(cè)工具,它可以用來檢查常見的JavaScript 程式碼錯(cuò)誤,也可以進(jìn)行程式碼風(fēng)格檢查,這樣我們就可以根據(jù)自己的喜好指定一套ESLint 配置,然後應(yīng)用到所編寫的項(xiàng)目上,從而實(shí)現(xiàn)輔助編碼規(guī)範(fàn)的執(zhí)行,有效控制專案代碼的品質(zhì)。
安裝
ESLint的安裝:本機(jī)安裝、全域安裝
1、本機(jī)安裝
$?npm?install?eslint?--save-dev
產(chǎn)生設(shè)定檔
$?./node_modules/.bin/eslint?--init
之後,您可以運(yùn)行ESLint在任何檔案或目錄如下:
$?./node_modules/.bin/eslint?index.js
#index.js是你需要測(cè)試的js檔案。你使用的任何插件或共享配置(必須安裝在本地來與安裝在本地的ESLint一起工作)。
2、全域安裝
如果你想讓ESLint可用到所有的專案,建議全域安裝ESLint。
$?npm?install?-g?eslint
產(chǎn)生設(shè)定檔
$?eslint?--init
之後,您可以在任何檔案或目錄執(zhí)行ESLint
$?eslint?index.js
PS:eslint --init是用於每個(gè)項(xiàng)目設(shè)定和配置eslint,並將執(zhí)行本地安裝的ESLint及其插件的目錄。如果你喜歡使用全域安裝的ESLint,在你設(shè)定中使用的任何插件都必須是全域安裝的。
使用
1、在專案根目錄產(chǎn)生package.json檔案(設(shè)定ESLint的專案中必須有package.json 文件,如果沒有的話可以使用npm init -y來產(chǎn)生)
$?npm?init?-y
2、安裝eslint(安裝方式依個(gè)人專案需要安裝,這裡使用全域安裝)
$?npm?install?-g?eslint
3、建立index .js文件,裡面寫一個(gè)函數(shù)。
function?merge?()?{ ????var?ret?=?{}; ????for?(var?i?in?arguments)?{ ????????var?m?=?arguments[i]; ????????for?(var?j?in?m)?ret[j]?=?m[j]; ????} ????return?ret; } console.log(merge({a:?123},?{b:?456}));
執(zhí)行node index.js,輸出結(jié)果為{ a: 123, b: 456 }
$?node?index.js {?a:?123,?b:?456?}
使用eslint檢查
$?eslint?index.js
Oops!?Something?went?wrong!?:( ESLint:?4.19.1. ESLint?couldn't?find?a?configuration?file.?To?set?up?a?configuration?file?for?this?project,?please?run: ????eslint?--init ESLint?looked?for?configuration?files?in?E:\website\demo5\js?and?its?ancestors.?If?it?found?none,?it?then?looked?in?your?home?directory. If?you?think?you?already?have?a?configuration?file?or?if?you?need?more?help,?please?stop?by?the?ESLint?chat?room:?https://gitter.im/eslint/eslint
執(zhí)行結(jié)果是失敗,因?yàn)闆]有找到相應(yīng)的配置文件,個(gè)人認(rèn)為這個(gè)eslint最重要的就是配置問題。
新設(shè)定??檔
??$?eslint?--init
產(chǎn)生的過程中,需要選擇產(chǎn)生規(guī)則、支援環(huán)境等內(nèi)容,以下說明一些本人的生成選項(xiàng)
??How?would?you?like?to?configure?ESLint??Answer?questions?about?your?style ??Are?you?using?ECMAScript?6?features??Yes ??Are?you?using?ES6?modules??Yes ??Where?will?your?code?run??Browser ??Do?you?use?CommonJS??Yes ??Do?you?use?JSX??No ??What?style?of?indentation?do?you?use??Tabs ??What?quotes?do?you?use?for?strings??Single ??What?line?endings?do?you?use??Windows ??Do?you?require?semicolons??No ??What?format?do?you?want?your?config?file?to?be?in??JavaScript
產(chǎn)生的內(nèi)容在. eslintrc.js檔案中,檔案內(nèi)容如下
module.exports?=?{ ????"env":?{ ????????"browser":?true, ????????"commonjs":?true, ????????"es6":?true ????}, ????"extends":?"eslint:recommended", ????"parserOptions":?{ ????????"sourceType":?"module" ????}, ????"rules":?{ ????????"indent":?[ ????????????"error", ????????????"tab" ????????], ????????"linebreak-style":?[ ????????????"error", ????????????"windows" ????????], ????????"quotes":?[ ????????????"error", ????????????"single" ????????], ????????"semi":?[ ????????????"error", ????????????"never" ????????] ????} };
??不過這個(gè)產(chǎn)生的額檔案裡面已經(jīng)有一些設(shè)定了,把裡面的內(nèi)容大部分刪除。留下個(gè)extends,剩下的自己填就可以了
?module.exports?=?{ ??????"extends":?"eslint:recommended" ??};
eslint:recommended配置,它包含了一系列核心規(guī)則,能報(bào)告一些常見的問題。
重新執(zhí)行eslint index.js,輸出如下
??10:1??error??Unexpected?console?statement??no-console ??10:1??error??'console'?is?not?defined??????no-undef ??2?problems?(2?errors,?0?warnings)
Unexpected console statement no-console --- 不能使用console
'console' is not defined ? ? no-undef ? --- console變數(shù)未定義,不能使用未定義的變數(shù)
一條一條解決,不能使用console的提示,那我們就禁用no-console就好了,在設(shè)定檔中加入rules
module.exports?=?{ ????extends:?'eslint:recommended', ????rules:?{ ????????'no-console':?'off', ????}, };
??設(shè)定規(guī)則寫在rules物件裡面,key表示規(guī)則名稱,value表示規(guī)則的配置。
??接著就是解決no-undef:出錯(cuò)的原因是因?yàn)镴avaScript有很多種運(yùn)行環(huán)境,例如常見的有瀏覽器和Node.js,另外還有很多軟體系統(tǒng)使用JavaScript作為其腳本引擎,例如PostgreSQL就支援使用JavaScript來寫儲(chǔ)存引擎,而這些運(yùn)行環(huán)境可能不存在console這個(gè)物件。另外在瀏覽器環(huán)境下會(huì)有window對(duì)象,而Node.js下沒有;在Node.js下會(huì)有process對(duì)象,而瀏覽器環(huán)境下沒有。
所以在設(shè)定檔中我們還需要指定程式的目標(biāo)環(huán)境:
module.exports?=?{ ????extends:?'eslint:recommended', ????env:?{ ????????node:?true, ????}, ????rules:?{ ????????'no-console':?'off', ????} };
再重新執(zhí)行檢查時(shí),就沒有任何提示輸出了,表示index.js已經(jīng)完全通過了檢查。
配置
配置方式有兩種:檔案配置方式、程式碼註解配置方式(建議使用檔案配置的形式,比較獨(dú)立,方便維護(hù))。
使用檔案設(shè)定的方式:在專案的根目錄下,新建一個(gè)名為 .eslintrc 的文件,在此文件中新增一些檢查規(guī)則。
檔案設(shè)定方式
env:??你的腳本將要執(zhí)行在什麼環(huán)境中
Environment可以預(yù)設(shè)好的其他環(huán)境的全域變量,如brower、node環(huán)境變數(shù)、es6環(huán)境變數(shù)、mocha環(huán)境變數(shù)等
'env':?{ ????'browser':?true, ????'commonjs':?true, ????'es6':?true },
globals:額外的全域變數(shù)
globals:?{ ????vue:?true, ????wx:?true },
rules:開啟規(guī)則和發(fā)生錯(cuò)誤時(shí)報(bào)告的等級(jí)
規(guī)則的錯(cuò)誤等級(jí)有三種:
0或’off’:關(guān)閉規(guī)則。? 1或’warn’:打開規(guī)則,并且作為一個(gè)警告(并不會(huì)導(dǎo)致檢查不通過)。? 2或’error’:打開規(guī)則,并且作為一個(gè)錯(cuò)誤?(退出碼為1,檢查不通過)。 參數(shù)說明:? 參數(shù)1?:?錯(cuò)誤等級(jí)? 參數(shù)2?:?處理方式
設(shè)定程式碼註解方式
使用JavaScript 註解把設(shè)定資訊直接嵌入到一個(gè)檔案
範(fàn)例:
忽略?no-undef?檢查? /*?eslint-disable?no-undef?*/ 忽略?no-new?檢查? /*?eslint-disable?no-new?*/ 設(shè)置檢查? /*eslint?eqeqeq:?off*/? /*eslint?eqeqeq:?0*/
設(shè)定和規(guī)則的內(nèi)容有不少,有興趣的同學(xué)可以參考這裡:rules
使用共享的配置文件
??我們使用配置js文件是以extends: 'eslint:recommended'為基礎(chǔ)配置,但是大多數(shù)時(shí)候我們需要制定很多規(guī)則,在一個(gè)文件中寫入會(huì)變得很臃腫,管理起來會(huì)很麻煩。
??新建一個(gè)文件比如eslint-config-public.js,在文件內(nèi)容添加一兩個(gè)規(guī)則。
module.exports?=?{ ????extends:?'eslint:recommended', ????env:?{ ????????node:?true, ????}, ????rules:?{ ????????'no-console':?'off', ????????'indent':?[?'error',?4?], ????????'quotes':?[?'error',?'single'?], ????}, };
然后原來的.eslintrc.js文件內(nèi)容稍微變化下,刪掉所有的配置,留下一個(gè)extends。
module.exports?=?{ ????extends:?'./eslint-config-public.js', };
??這個(gè)要測(cè)試的是啥呢,就是看看限定縮進(jìn)是4個(gè)空格和使用單引號(hào)的字符串等,然后測(cè)試下,運(yùn)行eslint index.js,得到的結(jié)果是沒有問題的,但是如果在index.js中的var ret = {};前面加個(gè)空格啥的,結(jié)果就立馬不一樣了。
2:1??error??Expected?indentation?of?4?spaces?but?found?5??indent ??1?problem?(1?error,?0?warnings) ??1?error,?0?warnings?potentially?fixable?with?the?`--fix`?option.
??這時(shí)候提示第2行的是縮進(jìn)應(yīng)該是4個(gè)空格,而文件的第2行卻發(fā)現(xiàn)了5個(gè)空格,說明公共配置文件eslint-config-public.js已經(jīng)生效了。
??除了這些基本的配置以外,在npm上有很多已經(jīng)發(fā)布的ESLint配置,也可以通過安裝使用。配置名字一般都是eslint-config-為前綴,一般我們用的eslint是全局安裝的,那用的eslint-config-模塊也必須是全局安裝,不然沒法載入。
在執(zhí)行eslint檢查的時(shí)候,我們會(huì)經(jīng)常看到提示“--flx”選項(xiàng),在執(zhí)行eslint檢查的時(shí)候添加該選項(xiàng)會(huì)自動(dòng)修復(fù)部分報(bào)錯(cuò)部分(注意這里只是部分,并不是全部)
比如我們?cè)谝?guī)則中添加一條no-extra-semi: 禁止不必要的分號(hào)。
'no-extra-semi':'error'
然后,我們?cè)趇ndex.js最后多添加一個(gè)分號(hào)
function?merge?()?{ ????var?ret?=?{}; ????for?(var?i?in?arguments)?{ ????????var?m?=?arguments[i]; ????????for?(var?j?in?m)?ret[j]?=?m[j]; ????} ????return?ret;; } console.log(merge({a:?123},?{b:?456}));
執(zhí)行eslint index.js,得到結(jié)果如下:
??7:16??error??Unnecessary?semicolon??no-extra-semi ??7:16??error??Unreachable?code???????no-unreachable ??2?problems?(2?errors,?0?warnings) ??1?error,?0?warnings?potentially?fixable?with?the?`--fix`?option.
然后我們?cè)趫?zhí)行eslint index.js --fix就會(huì)自動(dòng)修復(fù),index.js那個(gè)多余的分號(hào)也就被修復(fù)消失不見了。
總結(jié)
以上是我在學(xué)習(xí)eslint整理的一些資料,不算太全面,對(duì)于像我這樣的新手入門足夠了
相信看了本文案例你已經(jīng)掌握了方法,更多精彩請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!
推薦閱讀:
以上是EsLint新手入門須知的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費(fèi)脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級(jí)程式碼編輯軟體(SublimeText3)

react刪除eslint的方法:1、執(zhí)行「npm run eject」指令;2、在package.json中修改程式碼為「 "eslintConfig": {"extends": ["react-app","re??act-app/jest" ],"rules": {"no-undef": "off"...}」;3、重啟項(xiàng)目即可。

《海綿寶寶大鬧蟹堡王》是一款烹飪模擬經(jīng)營遊戲,玩法快節(jié)奏且充滿驚喜料理。你將扮演海綿寶寶,在遊戲中拓展各類餐廳和廚房,帶來歡樂。對(duì)於新手玩家,以下是一些攻略建議:首先,合理安排廚房佈局,提高工作效率;其次,注意食材的採購和存儲(chǔ),確保供應(yīng)充足;還要關(guān)注顧客的需求,及時(shí)處理訂單;最後,不斷升級(jí)設(shè)備和食譜,吸引更多顧客。透過這些技巧,你將能夠在遊戲中獲得更好海綿寶寶大鬧蟹堡王新手入門教程1、在開局都有一個(gè)小目標(biāo),玩家只需完成目標(biāo),即可通關(guān);2、在製作的過程中,大家一定要仔細(xì)查看客人的需求;3、每完成一

乳牛鎮(zhèn)的小時(shí)光是一款備受玩家喜愛的休閒經(jīng)營種田遊戲。遊戲設(shè)定了悠閒的節(jié)奏和輕鬆的玩法,讓玩家可以在模擬鄉(xiāng)鎮(zhèn)的世界中打造出屬於自己的趣味故事。很多新手玩家對(duì)這種獨(dú)特的經(jīng)營模擬遊戲都很感興趣。在這裡,我將為大家分享一些適合新手的入門玩法攻略,幫助他們更好地開始遊戲。乳牛鎮(zhèn)的小時(shí)光新手入門玩法攻略乳牛鎮(zhèn)的小時(shí)光是一款開放式模擬鄉(xiāng)鎮(zhèn)生活手遊,在這個(gè)像素小天地中,你將體驗(yàn)到開荒種地,畜牧養(yǎng)殖,搭建莊園工坊,攻略小鎮(zhèn)居民等全新農(nóng)場(chǎng)生活,更有釣魚賽馬,開礦探險(xiǎn),趕集貿(mào)易等多樣化玩法,等待你體驗(yàn)這個(gè)全新的乳牛鎮(zhèn)。大

憶遊十三道新手玩家該怎麼玩?憶遊十三道是一款有著放置收集角色精彩內(nèi)容打造的給力修仙遊戲,提供了休閒趣味的歡快娛樂精彩,可讓玩家在修仙世界中感受各式各樣的精品娛樂,新人玩家對(duì)此也是很感興趣,本期帶來一些入門向的助力攻略!憶遊十三道新手入門養(yǎng)成攻略1、每日挑戰(zhàn):可以考慮佩戴混沌珠打,每日挑戰(zhàn)獎(jiǎng)勵(lì)與傷害掛鉤,造成的傷害越高,獎(jiǎng)勵(lì)就可能越好。 2.試煉:透過挑戰(zhàn)關(guān)卡npc可以取得點(diǎn)星石、仙玉,排行榜靠前的話,可以取得星宿進(jìn)階材料。 3.主線和精英關(guān)卡:可以多做嘗試,運(yùn)氣好的情況下,多觸發(fā)幾次技能效果既有機(jī)會(huì)

埋點(diǎn)一直是 H5 專案中的重要一環(huán),而埋點(diǎn)資料更是後期改善業(yè)務(wù)和技術(shù)優(yōu)化的重要基礎(chǔ)。在日常的工作中,常常會(huì)有產(chǎn)品或業(yè)務(wù)的同學(xué)來問,「這個(gè)專案現(xiàn)在有哪些埋點(diǎn)?」,「這個(gè)埋點(diǎn)用在哪些地方?」像這樣的問題基本上都是問一次查一次程式碼,效率很低。

夢(mèng)幻的城新人玩家該如何操作?夢(mèng)幻的城是一款有著唯美治癒系內(nèi)容打造的優(yōu)質(zhì)模擬經(jīng)營遊戲,提供了很多自由開放城市的建設(shè)和經(jīng)營,好玩出眾內(nèi)容打造,可玩出夢(mèng)幻節(jié)奏的深入探索,新人玩家也是好奇如何操作,本期帶來夢(mèng)幻的城新手攻略分享!夢(mèng)幻的城新手入門玩法介紹1.夢(mèng)幻的城等級(jí)樹達(dá)到3級(jí)時(shí)解鎖開荒功能,開荒需要一名派遣動(dòng)物,同時(shí)消耗一定數(shù)量的水元素、土元素、木元素以及金幣,但有些荒地只需消耗金幣。 2.每次開荒只能選擇與已解鎖土地相連的荒地,不同的荒地所需材料數(shù)量不同,隨著開荒次數(shù)的增加,後期對(duì)材料數(shù)量的需求也會(huì)

隨著前端技術(shù)的不斷發(fā)展,我們面臨的問題也逐漸複雜了起來,不僅要求我們的程式碼結(jié)構(gòu)合理、模組化設(shè)計(jì)良好,更需要程式碼的可維護(hù)性和執(zhí)行效率。在這個(gè)過程中,如何保證程式碼的品質(zhì)和規(guī)範(fàn)性成為了一個(gè)難題。萬幸的是,程式碼規(guī)範(fàn)化和bug檢測(cè)工具的出現(xiàn),為我們提供了有效的解決方案。而在Vue.js框架中使用ESLint進(jìn)行程式碼規(guī)範(fàn)化和bug偵測(cè)已成為一種普遍選擇。一、ESLint

《仙境傳說愛如初見》是一款精品日系卡通主題的角色遊戲,融合了經(jīng)典ip和酷炫冒險(xiǎn)mmo的元素。遊戲的獨(dú)特操作特色打造了充滿經(jīng)典世界觀的沉浸式遊戲體驗(yàn)。在遊戲中,玩家將扮演各種經(jīng)典職業(yè),探索全新的冒險(xiǎn)故事。對(duì)於新人玩家而言,以下是一些攻略建議:仙境傳說愛如初見新手入門攻略技巧1.熟悉遊戲操作:仙境傳說愛如初見使用虛擬按鍵進(jìn)行操作,建議新手先熟悉遊戲操作,包括移動(dòng)、攻擊、技能釋放等。 2.選擇適合的職業(yè):遊戲中有多種職業(yè)可供選擇,新手應(yīng)依照自己的遊戲喜好和玩法習(xí)慣選擇適合的職業(yè)。 3.完成任務(wù)提升等級(jí)
