vue中eslintrc.js最詳細(xì)的介紹了

/**

* 參考文檔

* 【eslint英文文檔】https://eslint.org/docs/user-guide/configuring

* 【eslint中文文檔】http://eslint.cn/docs/rules/

*/

/**

* eslint有三種使用方式

* 【1】js代碼中通過注釋的方式使用

* 【2】通過webpack的eslintConfig字段設(shè)置裁良,eslint會(huì)自動(dòng)搜索項(xiàng)目的package.json文件中的配置

* 【3】通過配置文件的方式使用种蘸,配置文件有多種文件方式汰聋,如JavaScript、JSON 或者 YAML等

*/

/**

* 文件忽略

* 【】讓eslint跳過特定文件的檢測

* 【】通過當(dāng)前工作目錄下 「.eslintignore」 文件進(jìn)行設(shè)置

*? ? 其使用的是Glob路徑書寫方式益涧,與「.gitignore」的使用方法相同

* 【】也可以在 package.json 文件中冒黑,通過 eslintIgnore 參數(shù)進(jìn)行設(shè)置

*/

/**

* 文件內(nèi)局部設(shè)置

* 【】eslint可以具體文件中設(shè)置特定代碼的規(guī)則级乐,常用于跳過某條語句的檢測撕瞧。

* 【】注銷全部規(guī)則,在代碼前新建一行呐馆,添加注銷 /* eslint-disable *\/? 肥缔。如果沒有恢復(fù)設(shè)置的語句,則下列全部代碼都會(huì)跳過檢測汹来。

* 【】恢復(fù)eslint续膳,在代碼前新建一行改艇,添加注銷 /* eslint-enable *\/

* 【】指定忽略的規(guī)則,/* eslint-disable no-alert, no-console *\/

* 【】在特定行禁用坟岔,// eslint-disable-line

* 【】在下一行禁用谒兄,// eslint-disable-next-line

*/

module.exports = {

? /**

? * 根目錄標(biāo)識(shí)

? *? http://eslint.cn/docs/user-guide/configuring#using-configuration-files

? *? http://eslint.cn/docs/user-guide/configuring#configuration-cascading-and-hierarchy

? * 【】標(biāo)識(shí)當(dāng)前配置文件為最底層的文件,無需往更上一級(jí)的文件目錄中進(jìn)行搜索

? * 【】默認(rèn)eslint的配置文件搜索方式是社付,從目標(biāo)文件夾進(jìn)行搜索承疲,遍歷內(nèi)部每一個(gè)文件夾,找到配置文件并層疊使用鸥咖。再跳出本項(xiàng)目燕鸽,往祖先文件夾進(jìn)行遍歷

? * 【】注意「~/.eslintrc」的意義,「~」是指linux上的家目錄啼辣,「~/.eslintrc」是指家目錄下的eslint配置文件啊研,用于私人開發(fā)者,用于整個(gè)電腦全局約束的鸥拧。這個(gè)配置通過本配置項(xiàng)root去設(shè)置党远,設(shè)置了root,eslint檢測時(shí)將不會(huì)再往上搜索

? * 【】eslint的生效規(guī)則是就近使用,越近的配置項(xiàng)優(yōu)先級(jí)越高富弦,覆蓋其他配置項(xiàng)沟娱。如一個(gè)項(xiàng)目中,可以在不同文件夾中都添加配置文件舆声,這些規(guī)則將重疊組合生效

? */

? root: true, // 標(biāo)識(shí)當(dāng)前配置文件為eslint的根配置文件花沉,讓其停止在父級(jí)目錄中繼續(xù)尋找柳爽。

? /**

? * 解析器

? *? http://eslint.cn/docs/user-guide/configuring#specifying-parser

? * 【】ESLint 默認(rèn)使用Espree作為其解析器

? * 【】解析器必須是本地安裝的一個(gè) npm 模塊媳握。即必須按照在本地的node_module中

? * 【】解析器是用于解析js代碼的,怎么去理解每一個(gè)表達(dá)式磷脯,有點(diǎn)C++中編譯器的概念蛾找,會(huì)對(duì)js進(jìn)行一些語法分析,語義分析什么的赵誓,才能判斷語句符不符合規(guī)范打毛。而不是通過簡單的字符串對(duì)比。

? * 【】解析器有很多俩功,但兼容eslint的解析器有以下幾個(gè)

? *? Espree:默認(rèn)解析器幻枉,一個(gè)從Esprima中分離出來的解析器,做了一些優(yōu)化

? *? Esprima:js標(biāo)準(zhǔn)解析器

? *? Babel-ESLint: 一個(gè)對(duì)Babel解析器的包裝诡蜓,babel本身也是js解析器的一種(不然怎么能轉(zhuǎn)化為兼容性代碼呢熬甫?首先需要進(jìn)行js解析,才能轉(zhuǎn)化)蔓罚。如果我們的代碼需要經(jīng)過babel轉(zhuǎn)化椿肩,則對(duì)應(yīng)使用這個(gè)解析器

? *? typescript-eslint-parser(實(shí)驗(yàn)) - 一個(gè)把 TypeScript 轉(zhuǎn)換為 ESTree 兼容格式的解析器

? * 【】但是通常在vue項(xiàng)目中瞻颂,并不會(huì)寫在 parser 字段中,而是寫在 parserOptions -> parser郑象。具體原因在 parserOptions 一欄中介紹

? */

? // parser: 'babel-eslint',

? /**

? * 解析器配置項(xiàng)

? *? http://eslint.cn/docs/user-guide/configuring#specifying-parser-options

? * 【】這里設(shè)置的配置項(xiàng)將會(huì)傳遞到解析器中贡这,被解析器獲取到,進(jìn)行一定的處理厂榛。具體被利用到盖矫,要看解析器的源碼有沒有對(duì)其進(jìn)行利用。這里僅僅做了參數(shù)定義击奶,做了規(guī)定炼彪,告訴解析器的開發(fā)者可能有這些參數(shù)

? * 【】配置項(xiàng)目有:

? * "sourceType": "module",? ? // 指定JS代碼來源的類型,script(script標(biāo)簽引入正歼?) | module(es6的module模塊)辐马,默認(rèn)為script。為什么vue的會(huì)使用script呢局义?因?yàn)関ue是通過babel-loader編譯的喜爷,而babel編譯后的代碼就是script方式

? * "ecmaVersion": 6,? ? ? ? ? // 支持的ES語法版本,默認(rèn)為5萄唇。注意只是語法檩帐,不包括ES的全局變量。全局變量需要在env選項(xiàng)中進(jìn)行定義

? * "ecmaFeatures": {? ? ? ? ? // Features是特征的意思另萤,這里用于指定要使用其他那些語言對(duì)象

? ? ? "experimentalObjectRestSpread": true,? //啟用對(duì)對(duì)象的擴(kuò)展

? ? ? "jsx": true,? ? ? ? ? ? ? ? ? ? ? ? ? //啟用jsx語法

? ? ? "globalReturn":true,? ? ? ? ? ? ? ? ? //允許return在全局使用

? ? ? "impliedStrict":true? ? ? ? ? ? ? ? ? //啟用嚴(yán)格校驗(yàn)?zāi)J?/p>

? ? }

? */

? parserOptions: {

? ? /**

? ? * 這里出現(xiàn) parser 的原因

? ? * 【】首先明確一點(diǎn)湃密,官方說明中,parserOptions的配置參數(shù)是不包括 parser 的

? ? * 【】這里的寫 parser 是 eslint-plugin-vue 的要求四敞,是 eslint-plugin-vue 的自定義參數(shù)

? ? * 【】根據(jù)官方文檔泛源,eslint-plugin-vue 插件依賴 「vue-eslint-parser」解析器》尬#「vue-eslint-parser」解析器达箍,只解析 .vue 中html部分的內(nèi)容,不會(huì)檢測<script>中的JS內(nèi)容铺厨。

? ? * 【】由于解析器只有一個(gè)缎玫,用了「vue-eslint-parser」就不能用「babel-eslint」。所以「vue-eslint-parser」的做法是解滓,在解析器選項(xiàng)中赃磨,再傳入一個(gè)解析器選項(xiàng)parser。從而在內(nèi)部處理「babel-eslint」洼裤,檢測<script>中的js代碼

? ? * 【】所以這里出現(xiàn)了 parser

? ? * 【】相關(guān)文檔地址邻辉,https://vuejs.github.io/eslint-plugin-vue/user-guide/#usage

? ? */

? ? parser: 'babel-eslint',

? },

? /**

? * 運(yùn)行環(huán)境

? *? http://eslint.cn/docs/user-guide/configuring#specifying-environments

? * 【】一個(gè)環(huán)境定義了一組預(yù)定義的全局變量

? * 【】獲得了特定環(huán)境的全局定義,就不會(huì)認(rèn)為是開發(fā)定義的,跳過對(duì)其的定義檢測恩沛。否則會(huì)被認(rèn)為改變量未定義

? * 【】常見的運(yùn)行環(huán)境有以下這些在扰,更多的可查看官網(wǎng)

? *? browser - 瀏覽器環(huán)境中的全局變量。

? *? node - Node.js 全局變量和 Node.js 作用域雷客。

? *? es6 - 啟用除了 modules 以外的所有 ECMAScript 6 特性(該選項(xiàng)會(huì)自動(dòng)設(shè)置 ecmaVersion 解析器選項(xiàng)為 6)芒珠。

? *? amd - 將 require() 和 define() 定義為像 amd 一樣的全局變量。

? *? commonjs - CommonJS 全局變量和 CommonJS 作用域 (用于 Browserify/WebPack 打包的只在瀏覽器中運(yùn)行的代碼)搅裙。

? *? jquery - jQuery 全局變量皱卓。

? *? mongo - MongoDB 全局變量。

? *? worker - Web Workers 全局變量部逮。

? *? serviceworker - Service Worker 全局變量娜汁。

? */

? env: {

? ? browser: true, // 瀏覽器環(huán)境

? },

? /**

? * 全局變量

? * http://eslint.cn/docs/user-guide/configuring#specifying-globals

? * 【】定義額外的全局,開發(fā)者自定義的全局變量兄朋,讓其跳過no-undef 規(guī)則

? * 【】key值就是額外添加的全局變量

? * 【】value值用于標(biāo)識(shí)該變量能否被重寫掐禁,類似于const的作用。true為允許變量被重寫

? * 【】注意:要啟用no-global-assign規(guī)則來禁止對(duì)只讀的全局變量進(jìn)行修改颅和。

? */

? globals: {

? ? // gTool: true, // 例如定義gTool這個(gè)全局變量傅事,且這個(gè)變量可以被重寫

? },

? /**

? * 插件

? * http://eslint.cn/docs/user-guide/configuring#configuring-plugins

? * 【】插件同樣需要在node_module中下載

? * 【】注意插件名忽略了「eslint-plugin-」前綴,所以在package.json中峡扩,對(duì)應(yīng)的項(xiàng)目名是「eslint-plugin-vue」

? * 【】插件的作用類似于解析器蹭越,用以擴(kuò)展解析器的功能,用于檢測非常規(guī)的js代碼教届。也可能會(huì)新增一些特定的規(guī)則响鹃。

? * 【】如 eslint-plugin-vue,是為了幫助我們檢測.vue文件中 <template> 和 <script> 中的js代碼

? */

? plugins: ['vue'],

? /**

? * 規(guī)則繼承

? * http://eslint.cn/docs/user-guide/configuring#extending-configuration-files

? *【】可繼承的方式有以下幾種

? *【】eslint內(nèi)置推薦規(guī)則案训,就只有一個(gè)买置,即「eslint:recommended」

? *【】可共享的配置, 是一個(gè) npm 包萤衰,它輸出一個(gè)配置對(duì)象堕义。即通過npm安裝到node_module中

? *? 可共享的配置可以省略包名的前綴 eslint-config-,即實(shí)際設(shè)置安裝的包名是 eslint-config-airbnb-base

? *【】從插件中獲取的規(guī)則脆栋,書寫規(guī)則為 「plugin:插件包名/配置名」,其中插件報(bào)名也是可以忽略「eslint-plugin-」前綴洒擦。如'plugin:vue/essential'

? *【】從配置文件中繼承椿争,即繼承另外的一個(gè)配置文件,如'./node_modules/coding-standard/eslintDefaults.js'

? */

? extends: [

? ? /**

? ? * vue 的額外添加的規(guī)則是 v-if, v-else 等指令檢測

? ? */

? ? 'plugin:vue/essential', // 額外添加的規(guī)則可查看 https://vuejs.github.io/eslint-plugin-vue/rules/

? ? /**

? ? * 「airbnb熟嫩,愛彼迎」

? ? * 【】有兩種eslint規(guī)范秦踪,一種是自帶了react插件的「eslint-config-airbnb」,一種是基礎(chǔ)款「eslint-config-airbnb-base」,

? ? * 【】airbnb-base 包括了ES6的語法檢測椅邓,需要依賴 「eslint-plugin-import」

? ? * 【】所以在使用airbnb-base時(shí)柠逞,需要用npm額外下載 eslint-plugin-import

? ? * 【】所以eslint實(shí)際上已經(jīng)因?yàn)?airbnb-base 基礎(chǔ)配置項(xiàng)目,添加上了 eslint-plugin-import 插件配置

? ? * 【】所以在setting和rules里景馁,都有 'import/xxx' 項(xiàng)目板壮,這里修改的就是 eslint-plugin-import 配置

? ? */

? ? // 'airbnb-base',

? ],

? /**

? * 規(guī)則共享參數(shù)

? * http://eslint.cn/docs/user-guide/configuring#adding-shared-settings

? * 【】提供給具體規(guī)則項(xiàng),每個(gè)參數(shù)值合住,每個(gè)規(guī)則項(xiàng)都會(huì)被注入該變量绰精,但對(duì)應(yīng)規(guī)則而言,有沒有用透葛,就看各個(gè)規(guī)則的設(shè)置了笨使,就好比 parserOptions,解析器用不用它就不知道了僚害。這里只是提供這個(gè)方法

? * 【】不用懷疑硫椰,經(jīng)源碼驗(yàn)證,這就是傳遞給每個(gè)規(guī)則項(xiàng)的萨蚕,會(huì)當(dāng)做參數(shù)傳遞過去最爬,但用不用,就是具體規(guī)則的事情

? */

? settings: {

? ? /**

? ? *

? ? * 注意门岔,「import/resolver」并不是eslint規(guī)則項(xiàng)爱致,與rules中的「import/extensions」不同。它不是規(guī)則項(xiàng)

? ? * 這里只是一個(gè)參數(shù)名寒随,叫「import/resolver」糠悯,會(huì)傳遞給每個(gè)規(guī)則項(xiàng)。

? ? * settings并沒有具體的書寫規(guī)則妻往,「import/」只是import模塊自己起的名字互艾,原則上,它直接命名為「resolver」也可以讯泣,加上「import」只是為了更好地區(qū)分纫普。不是強(qiáng)制設(shè)置的。

? ? * 因?yàn)椤竔mport」插件很多規(guī)則項(xiàng)都用的這個(gè)配置項(xiàng)好渠,所以并沒有通過rules設(shè)置昨稼,而是通過settings共享

? ? * 具體使用方法可參考https://github.com/benmosher/eslint-plugin-import

? ? */

? ? 'import/resolver': {

? ? ? /**

? ? ? * 這里傳入webpack并不是import插件能識(shí)別webpack,而且通過npm安裝了「eslint-import-resolver-webpack」拳锚,

? ? ? * 「import」插件通過「eslint-import-resolver-」+「webpack」找到該插件并使用假栓,就能解析webpack配置項(xiàng)。使用里面的參數(shù)霍掺。

? ? ? * 主要是使用以下這些參數(shù)匾荆,共享給import規(guī)則拌蜘,讓其正確識(shí)別import路徑

? ? ? * extensions: ['.js', '.vue', '.json'],

? ? ? * alias: {

? ? ? *? 'vue$': 'vue/dist/vue.esm.js',

? ? ? *? '@': resolve('src'),

? ? ? *? 'static': resolve('static')

? ? ? * }

? ? ? */

? ? ? webpack: {

? ? ? ? config: 'build/webpack.base.conf.js'

? ? ? }

? ? }

? },

? /**

? * 針對(duì)特定文件的配置

? * 【】可以通過overrides對(duì)特定文件進(jìn)行特定的eslint檢測

? * 【】特定文件的路徑書寫使用Glob格式,一個(gè)類似正則的路徑規(guī)則牙丽,可以匹配不同的文件

? * 【】配置幾乎與 ESLint 的其他配置相同简卧。覆蓋塊可以包含常規(guī)配置中的除了 extends、overrides 和 root 之外的其他任何有效配置選項(xiàng)烤芦,

? */

? // overrides: [

? //? {

? //? ? 'files': ['bin/*.js', 'lib/*.js'],

? //? ? 'excludedFiles': '*.test.js',

? //? ? 'rules': {

? //? ? ? 'quotes': [2, 'single']

? //? ? }

? //? }

? // ],

? /**

? * 自定義規(guī)則

? * http://eslint.cn/docs/user-guide/configuring#configuring-rules

? * 【】基本使用方式

? *? "off" 或者0 關(guān)閉規(guī)則

? *? "warn" 或者1 將規(guī)則打開為警告(不影響退出代碼)

? *? "error" 或者2 將規(guī)則打開為錯(cuò)誤(觸發(fā)時(shí)退出代碼為1)

? *? 如:'no-restricted-syntax': 0, // 表示關(guān)閉該規(guī)則

? * 【】如果某項(xiàng)規(guī)則举娩,有額外的選項(xiàng),可以通過數(shù)組進(jìn)行傳遞拍棕,而數(shù)組的第一位必須是錯(cuò)誤級(jí)別晓铆。如0,1,2

? *? 如 'semi': ['error', 'never'], never就是額外的配置項(xiàng)

? */

? rules: {

? ? /**

? ? * 具體規(guī)則

? ? * 【】具體的規(guī)則太多,就不做介紹了绰播,有興趣的同學(xué)可以上eslint官網(wǎng)查

? ? * 【】注意 xxx/aaa 這些規(guī)則是 xxx 插件自定的規(guī)則骄噪,在eslint官網(wǎng)是查不到的。需要到相應(yīng)的插件官網(wǎng)中查閱

? ? * 【】如 import/extensions蠢箩,這是「eslint-plugin-import」自定義的規(guī)則链蕊,需要到其官網(wǎng)查看 https://github.com/benmosher/eslint-plugin-import

? ? */

? ? /**

? ? * 邏輯錯(cuò)誤及最佳實(shí)踐的規(guī)則

? ? */

? ? 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0, // 打包時(shí)禁止debugger

? ? 'no-console': process.env.NODE_ENV === 'production' ? 2 : 0, // 打包時(shí)禁止console

? ? 'no-alert': process.env.NODE_ENV === 'production' ? 2 : 0, // 打包時(shí)禁止console

? ? "for-direction": 2, // 禁止for無限循環(huán)

? ? "no-compare-neg-zero": 2, // 禁止與-0進(jìn)行比較

? ? 'no-cond-assign': 2, // 禁止條件語句中出現(xiàn)賦值語句

? ? "no-control-regex": 2, // 在 ASCII 中,0-31 范圍內(nèi)的控制字符是特殊的谬泌、不可見的字符滔韵。這些字符很少被用在 JavaScript 字符串中,所以一個(gè)正則表達(dá)式如果包含這些字符的掌实,很有可能一個(gè)錯(cuò)誤陪蜻。

? ? "no-dupe-args": 2, // 禁止在函數(shù)定義或表達(dá)中出現(xiàn)重名參數(shù)

? ? "no-dupe-keys": 2, // 禁止在對(duì)象字面量中出現(xiàn)重復(fù)的鍵

? ? "no-duplicate-case": 2, // 禁止重復(fù) case 標(biāo)簽

? ? "no-empty": 2, // 禁止空塊語句

? ? "no-empty-character-class": 2, // 禁止在正則表達(dá)式中出現(xiàn)空字符集

? ? "no-ex-assign": 2, // 禁止對(duì) catch 子句中的異常重新賦值。因?yàn)閏atch出來的都是錯(cuò)誤信息贱鼻,不需要重新賦值

? ? "no-extra-boolean-cast": 2, // 禁止不必要的布爾類型轉(zhuǎn)換宴卖,如 !!true

? ? "no-extra-semi": 2, // 禁用不必要的分號(hào)

? ? "no-inner-declarations": 2, // ??? 禁止在嵌套的語句塊中出現(xiàn)變量

? ? "no-regex-spaces": 2, // 禁止正則表達(dá)式字面量中出現(xiàn)多個(gè)空格

? ? "no-obj-calls": 2, // 禁止將全局對(duì)象當(dāng)作函數(shù)進(jìn)行調(diào)用

? ? "no-prototype-builtins": 2, // ??? 禁止直接在對(duì)象實(shí)例上調(diào)用 Object.prototype 的一些方法。

? ? "no-template-curly-in-string": 2, // 禁止在常規(guī)字符串中出現(xiàn)模板字面量占位符語法

? ? "semi": [2, 'never'], // ??? 強(qiáng)制是否使用分號(hào)邻悬。

? ? "no-unexpected-multiline": 2, // 禁止使用令人困惑的多行表達(dá)式

? ? "no-unreachable": 2, // 禁止在 return症昏、throw、continue 和 break 語句后出現(xiàn)不可達(dá)代碼

? ? "use-isnan": 2, // 要求調(diào)用 isNaN()檢查 NaN

? ? "no-unsafe-negation": 2, // 禁止對(duì)關(guān)系運(yùn)算符的左操作數(shù)使用否定操作符

? ? "valid-jsdoc": 2, // 強(qiáng)制使用有效的 JSDoc 注釋

? ? "valid-typeof": 2, // 強(qiáng)制 typeof 表達(dá)式與有效的字符串進(jìn)行比較

? ? "array-callback-return": 2, // 強(qiáng)制數(shù)組方法的回調(diào)函數(shù)中有 return 語句

? ? "block-scoped-var": 2, // 把 var 語句看作是在塊級(jí)作用域范圍之內(nèi)

? ? "complexity": [1, 6], // 添加復(fù)雜度

? ? "curly": 2, // ??? 要求遵循大括號(hào)約定

? ? "default-case": 1, // 要求 Switch 語句中有 Default 分支

? ? "dot-location": [2, 'property'], // 強(qiáng)制在點(diǎn)號(hào)之前換行

? ? "dot-notation": 2, // 點(diǎn)號(hào)和字面量父丰,優(yōu)先使用點(diǎn)號(hào)

? ? "eqeqeq": [2, 'smart'], // ??? 要求使用 === 和 !==

? ? "guard-for-in": 2, // ??? 需要約束 for-in

? ? "no-caller": 2, // 禁用 caller 或 callee

? ? "no-empty-function": 2, // 禁止出現(xiàn)空函數(shù)

? ? "no-empty-pattern": 2, // 禁止使用空解構(gòu)模式

? ? "no-eval": 2, // 禁用 eval()

? ? "no-global-assign": 2, // 禁止對(duì)原生對(duì)象或只讀的全局對(duì)象進(jìn)行賦值

? ? "no-floating-decimal": 2, // ?? 禁止浮點(diǎn)小數(shù)

? ? "no-fallthrough": 2, // 禁止 case 語句落空

? ? "no-labels": 2, // 禁用標(biāo)簽語句

? ? "no-extra-label": 2, // 禁用不必要的標(biāo)簽

? ? "no-extra-bind": 2, // 禁止不必要的函數(shù)綁定

? ? "no-iterator": 2, // 禁用迭代器

? ? "no-lone-blocks": 2, // 禁用不必要的嵌套塊

? ? "no-loop-func": 2, // 禁止循環(huán)中存在函數(shù)

? ? "no-magic-numbers": [2, {

? ? ? ignoreArrayIndexes: true,

? ? ? ignore: [-1, 0, 1, 2],

? ? }], // 禁止使用魔術(shù)數(shù)字肝谭,魔術(shù)數(shù)字是在代碼中多次出現(xiàn)的沒有明確含義的數(shù)字。它最好由命名常量取代蛾扇。

? ? "no-multi-spaces": 2, // 禁止出現(xiàn)多個(gè)空格

? ? "no-multi-str": 2, // 禁止多行字符串

? ? "no-new": 2, // 禁止在不保存實(shí)例的情況下使用new

? ? "no-new-func": 2, // 禁用Function構(gòu)造函數(shù)

? ? "no-new-wrappers": 2, // 禁止原始包裝實(shí)例

? ? "no-octal": 2, // 禁用八進(jìn)制字面量

? ? "no-octal-escape": 2, // 禁止在字符串字面量中使用八進(jìn)制轉(zhuǎn)義序列

? ? "no-param-reassign": 2, // ??? 禁止對(duì)函數(shù)參數(shù)再賦值

? ? "no-proto": 2, // 禁用__proto__攘烛,改用 getPrototypeOf 方法替代 __proto__。

? ? "no-redeclare": 2, // 禁止重新聲明變量

? ? "no-return-assign": 2, // 禁止在返回語句中賦值

? ? "no-return-await": 2, // 禁用不必要的 return await

? ? "no-script-url": 2, // 禁用 Script URL

? ? "no-self-assign": 2, // 禁止自身賦值

? ? "no-sequences": 2, // ??? 不允許使用逗號(hào)操作符

? ? "no-throw-literal": 2, // 限制可以被拋出的異常

? ? "no-unmodified-loop-condition": 2, // 禁用一成不變的循環(huán)條件

? ? "no-useless-call": 2, // 禁用不必要的 .call() 和 .apply()

? ? "no-useless-concat": 2, // 禁止沒有必要的字符拼接

? ? "no-useless-escape": 2, // 禁用不必要的轉(zhuǎn)義

? ? "no-useless-return": 2, // 禁止多余的 return 語句

? ? "no-void": 2, // 禁止使用void操作符

? ? "no-with": 2, // 禁用 with 語句

? ? "prefer-promise-reject-errors": 1, // ??? 要求使用 Error 對(duì)象作為 Promise 拒絕的原因

? ? "radix": 1, // 要求必須有基數(shù)

? ? "require-await": 2, // 禁止使用不帶 await 表達(dá)式的 async 函數(shù)

? ? "vars-on-top": 2, // 要求將變量聲明放在它們作用域的頂部

? ? "wrap-iife": [2, 'inside'], // 需要把立即執(zhí)行的函數(shù)包裹起來

? ? "strict": [2, 'global'], // 要求或禁止使用嚴(yán)格模式指令

? ? /**

? ? * 變量相關(guān)的規(guī)則

? ? */

? ? "init-declarations": 2, // ??? 強(qiáng)制或禁止變量聲明語句中初始化

? ? "no-delete-var": 2, // 禁止刪除變量

? ? "no-shadow": 2, // 禁止變量聲明覆蓋外層作用域的變量

? ? "no-shadow-restricted-names": 2, // 關(guān)鍵字不能被遮蔽

? ? "no-undef": 2, // 禁用未聲明的變量

? ? "no-unused-vars": 1, // ??? 禁止未使用過的變量

? ? "no-use-before-define": 2, // 禁止定義前使用

? ? // 代碼風(fēng)格

? ? "array-bracket-newline": [2, 'consistent'], // 在數(shù)組開括號(hào)后和閉括號(hào)前強(qiáng)制換行

? ? "array-bracket-spacing": 2, // 強(qiáng)制在括號(hào)內(nèi)前后使用空格

? ? "array-element-newline": [2, { multiline: true }], // ??? 強(qiáng)制數(shù)組元素間出現(xiàn)換行

? ? "block-spacing": 2, // 強(qiáng)制在代碼塊中開括號(hào)前和閉括號(hào)后有空格

? ? "brace-style": 2, // 大括號(hào)風(fēng)格要求

? ? "camelcase": 2, // 要求使用駱駝拼寫法

? ? "comma-dangle": [2, 'always-multiline'], // 要求或禁止使用拖尾逗號(hào)

? ? "comma-spacing": 2, // 強(qiáng)制在逗號(hào)周圍使用空格

? ? "comma-style": 2, // 逗號(hào)風(fēng)格

? ? "computed-property-spacing": 2, // 禁止或強(qiáng)制在計(jì)算屬性中使用空格

? ? "consistent-this": [2, 'self'], // ??? 要求一致的 This

? ? "eol-last": [1, 'always'], // ??? 要求或禁止文件末尾保留一行空行

? ? "func-call-spacing": 2, // 要求或禁止在函數(shù)標(biāo)識(shí)符和其調(diào)用之間有空格

? ? "func-style": [2, 'declaration'], // ??? 強(qiáng)制 function 聲明或表達(dá)式的一致性

? ? "function-paren-newline": [1, 'multiline'], // 強(qiáng)制在函數(shù)括號(hào)內(nèi)使用一致的換行

? ? "indent": [2, 2], // 強(qiáng)制使用一致的縮進(jìn)

? ? "jsx-quotes": 2, // 強(qiáng)制在 JSX 屬性中一致地使用雙引號(hào)或單引號(hào)

? ? "key-spacing": 2, // 強(qiáng)制在對(duì)象字面量的鍵和值之間使用一致的空格

? ? "keyword-spacing": 2, // 強(qiáng)制關(guān)鍵字周圍空格的一致性

? ? "linebreak-style": 2, // 強(qiáng)制使用一致的換行符風(fēng)格屁桑,用\n医寿,不用\r\n

? ? "lines-around-comment": 2, // 強(qiáng)制注釋周圍有空行

? ? "lines-between-class-members": 2, // 要求在類成員之間出現(xiàn)空行

? ? "max-depth": 2, // 強(qiáng)制塊語句的最大可嵌套深度

? ? "max-len": [2, { // 強(qiáng)制行的最大長度

? ? ? "code": 100,

? ? ? "tabWidth": 4,

? ? ? "ignoreUrls": true,

? ? ? "ignoreTrailingComments": true,

? ? ? "ignoreTemplateLiterals": true,

? ? }], //

? ? "max-lines": [2, 1000], // ??? 強(qiáng)制文件的最大行數(shù)

? ? "max-nested-callbacks": [2, 5], // 強(qiáng)制回調(diào)函數(shù)最大嵌套深度

? ? "max-statements-per-line": 2, // 強(qiáng)制每一行中所允許的最大語句數(shù)量

? ? "multiline-comment-style": 1, // 強(qiáng)制對(duì)多行注釋使用特定風(fēng)格

? ? "new-cap": 2, // 要求構(gòu)造函數(shù)首字母大寫

? ? "new-parens": 2, // 要求調(diào)用無參構(gòu)造函數(shù)時(shí)帶括號(hào)

? ? "newline-per-chained-call": 2, // 要求方法鏈中每個(gè)調(diào)用都有一個(gè)換行符

? ? "no-bitwise": 2, // 禁止使用按位操作符

? ? "no-inline-comments": 0, // ??? 禁止使用內(nèi)聯(lián)注釋

? ? "no-lonely-if": 2, // 禁止 if 語句作為唯一語句出現(xiàn)在 else 語句塊中

? ? "no-mixed-spaces-and-tabs": 2, // 禁止使用 空格 和 tab 混合縮進(jìn)

? ? "no-multiple-empty-lines": 1, // ??? 不允許多個(gè)空行

? ? "no-negated-condition": 2, // 禁用否定表達(dá)式

? ? "no-nested-ternary": 2, // 禁止使用嵌套的三元表達(dá)式

? ? "no-new-object": 2, // 禁止使用 Object 構(gòu)造函數(shù)

? ? "no-trailing-spaces": 2, // 禁用行尾空白

? ? "no-underscore-dangle": 2, // 禁止標(biāo)識(shí)符中有懸空下劃線

? ? "quotes": [2, 'single'], // 強(qiáng)制使用一致的單引號(hào)

? ? "quote-props": [2, 'as-needed'], // ??? 要求對(duì)象字面量屬性名稱使用引號(hào)

? ? "operator-linebreak": [2, 'before'], // 強(qiáng)制操作符使用一致的換行符風(fēng)格

? ? "one-var": [2, 'never'], // ??? 強(qiáng)制函數(shù)中的變量在一起聲明或分開聲明

? ? "object-property-newline": 1, // ??? 強(qiáng)制將對(duì)象的屬性放在不同的行上

? ? "object-curly-spacing": [2, 'always'], // 強(qiáng)制在花括號(hào)中使用一致的空格

? ? "object-curly-newline": [1, { // ??? 對(duì)象屬性換行

? ? ? multiline: true,

? ? }], //

? ? "no-whitespace-before-property": 2, // 禁止屬性前有空白

? ? "no-unneeded-ternary": 2, // 禁止可以表達(dá)為更簡單結(jié)構(gòu)的三元操作符

? ? "semi-spacing": 2, // 強(qiáng)制分號(hào)前后有空格

? ? "semi-style": 2, // 分號(hào)風(fēng)格

? ? "space-before-blocks": [2, 'always'], // 禁止語句塊之前的空格

? ? "space-before-function-paren": [2, 'never'], // 禁止函數(shù)圓括號(hào)之前有一個(gè)空格

? ? "space-in-parens": 2, // 禁止或強(qiáng)制圓括號(hào)內(nèi)的空格

? ? "space-infix-ops": 2, // 要求中綴操作符周圍有空格

? ? "space-unary-ops": 2, // 禁止在一元操作符之前或之后存在空格

? ? "spaced-comment": 2, // 要求在注釋前有空白

? ? "switch-colon-spacing": 2, // 強(qiáng)制在 switch 的冒號(hào)左右有空格

? ? "template-tag-spacing": 2, // 要求在模板標(biāo)記和它們的字面量之間有空格

? ? /**

? ? * ES6相關(guān)規(guī)則

? ? */

? ? "arrow-parens": [2, 'as-needed'], // 要求箭頭函數(shù)的參數(shù)使用圓括號(hào)

? ? "arrow-body-style": 2, // 要求箭頭函數(shù)體使用大括號(hào)

? ? "arrow-spacing": 2, // 要求箭頭函數(shù)的箭頭之前或之后有空格

? ? "generator-star-spacing": 2, // ??? 強(qiáng)制 generator 函數(shù)中 * 號(hào)周圍有空格

? ? "no-class-assign": 2, // 不允許修改類聲明的變量

? ? "no-confusing-arrow": 2, // 禁止在可能與比較操作符相混淆的地方使用箭頭函數(shù)

? ? "no-const-assign": 2, // 不允許改變用const聲明的變量

? ? "no-dupe-class-members": 2, // 不允許類成員中有重復(fù)的名稱

? ? "no-duplicate-imports": 2, // 禁止重復(fù)導(dǎo)入

? ? "no-new-symbol": 0, // 禁止 Symbol 操作符和 new 一起使用lines-between

? ? "no-useless-computed-key": 2, // 禁止在對(duì)象中使用不必要的計(jì)算屬性

? ? "no-useless-constructor": 2, // 禁用不必要的構(gòu)造函數(shù)

? ? "no-useless-rename": 2, // 禁止在 import 和 export 和解構(gòu)賦值時(shí)將引用重命名為相同的名字

? ? "no-var": 2, // 要求使用 let 或 const 而不是 var

? ? "object-shorthand": 2, // 要求對(duì)象字面量簡寫語法

? ? "prefer-arrow-callback": 2, // 要求使用箭頭函數(shù)作為回調(diào)

? ? "prefer-const": 1, // ??? 建議使用const

? ? "prefer-destructuring": [2, { // 優(yōu)先使用數(shù)組和對(duì)象解構(gòu)

? ? ? "array": false,

? ? ? "object": true

? ? }],

? ? "prefer-rest-params": 2, // 使用剩余參數(shù)代替 arguments

? ? "prefer-spread": 2, // 建議使用擴(kuò)展運(yùn)算符而非.apply()

? ? "prefer-template": 2, // 建議使用模板而非字符串連接

? ? "require-yield": 2, // 禁用函數(shù)內(nèi)沒有yield的 generator 函數(shù)

? ? "rest-spread-spacing": 2, // 強(qiáng)制剩余和擴(kuò)展運(yùn)算符及其表達(dá)式之間有空格

? ? "template-curly-spacing": 2, // 強(qiáng)制模板字符串中空格的使用

? ? "sort-imports": [0, { // ??? import 排序 問題是要以字母排序

? ? ? ignoreCase: true,

? ? ? ignoreMemberSort: true,

? ? ? memberSyntaxSortOrder: ['all', 'single', 'multiple', 'none']

? ? }], //

? }

};

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市蘑斧,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖竖瘾,帶你破解...
    沈念sama閱讀 210,978評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件沟突,死亡現(xiàn)場離奇詭異,居然都是意外死亡捕传,警方通過查閱死者的電腦和手機(jī)惠拭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來庸论,“玉大人职辅,你說我怎么就攤上這事∧羰荆” “怎么了域携?”我有些...
    開封第一講書人閱讀 156,623評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長鱼喉。 經(jīng)常有香客問我秀鞭,道長,這世上最難降的妖魔是什么扛禽? 我笑而不...
    開封第一講書人閱讀 56,324評(píng)論 1 282
  • 正文 為了忘掉前任锋边,我火速辦了婚禮,結(jié)果婚禮上编曼,老公的妹妹穿的比我還像新娘豆巨。我一直安慰自己,他們只是感情好掐场,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評(píng)論 5 384
  • 文/花漫 我一把揭開白布往扔。 她就那樣靜靜地躺著,像睡著了一般刻肄。 火紅的嫁衣襯著肌膚如雪瓤球。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,741評(píng)論 1 289
  • 那天敏弃,我揣著相機(jī)與錄音卦羡,去河邊找鬼。 笑死麦到,一個(gè)胖子當(dāng)著我的面吹牛绿饵,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播瓶颠,決...
    沈念sama閱讀 38,892評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼拟赊,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了粹淋?” 一聲冷哼從身側(cè)響起吸祟,我...
    開封第一講書人閱讀 37,655評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤瑟慈,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后屋匕,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體葛碧,經(jīng)...
    沈念sama閱讀 44,104評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年过吻,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了进泼。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,569評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡纤虽,死狀恐怖乳绕,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情逼纸,我是刑警寧澤洋措,帶...
    沈念sama閱讀 34,254評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站樊展,受9級(jí)特大地震影響呻纹,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜专缠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評(píng)論 3 312
  • 文/蒙蒙 一雷酪、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧涝婉,春花似錦哥力、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至渔工,卻和暖如春锌钮,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背引矩。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評(píng)論 1 264
  • 我被黑心中介騙來泰國打工梁丘, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人旺韭。 一個(gè)月前我還...
    沈念sama閱讀 46,260評(píng)論 2 360
  • 正文 我出身青樓氛谜,卻偏偏與公主長得像,于是被迫代替她去往敵國和親区端。 傳聞我的和親對(duì)象是個(gè)殘疾皇子值漫,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • eslint配置方式 注釋配置:使用js注釋來直接嵌入ESLint配置信息到一個(gè)文件里 配置文件:使用一個(gè)js文件...
    輕輕地走在路上閱讀 1,442評(píng)論 0 0
  • 本文是對(duì)vue項(xiàng)目中自帶文件eslintrc.js的內(nèi)容解析, 介紹了各個(gè)eslint配置項(xiàng)的作用织盼,以及為什么這樣...
    Marting424閱讀 5,517評(píng)論 0 0
  • 強(qiáng)調(diào):這是一篇關(guān)于vue-adimn-template項(xiàng)目中.eslintrc.js文件的映射解析杨何,不是eslin...
    皮皮坤666閱讀 1,766評(píng)論 0 2
  • 從官網(wǎng)抄些有用的話酱塔,介紹什么的建議右轉(zhuǎn)百度,熟悉npm者直接拉到中間 安裝 通過npm安裝npm install ...
    codeflame閱讀 2,463評(píng)論 0 0
  • 16宿命:用概率思維提高你的勝算 以前的我是風(fēng)險(xiǎn)厭惡者晚吞,不喜歡去冒險(xiǎn)延旧,但是人生放棄了冒險(xiǎn)谋国,也就放棄了無數(shù)的可能槽地。 ...
    yichen大刀閱讀 6,037評(píng)論 0 4