国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

js代碼規(guī)范之---Eslint安裝與配置

MkkHou / 2516人閱讀

摘要:使用去定義配置的結(jié)構(gòu),的文件允許風(fēng)格的注釋已棄用在里創(chuàng)建一個(gè)屬性,在那里定義你的配置屬性支持使用第三方插件以開(kāi)頭的包,在使用插件之前,必須使用安裝。如等屬性一個(gè)配置文件可以被基礎(chǔ)配置中的已啟用的規(guī)則繼承。

一、Eslint安裝 1.全局安裝

如果你想使 ESLint 適用于你所有的項(xiàng)目,建議全局安裝 ESLint

$ npm install -g eslint

初始化配置文件

$ eslint --init
2.局部安裝
$ npm install eslint --save-dev

初始化配置文件

$ ./node_modules/.bin/eslint --init
3.webpack中配置eslint

需要安裝eslint-loader解析.eslint文件

{
        test: /.(js|jsx|mjs)$/,
        enforce: "pre",
        use: [
          {
            options: {
              formatter: eslintFormatter,
              eslintPath: require.resolve("eslint"),
              
            },
            loader: require.resolve("eslint-loader"),
          },
        ],
        include: paths.appSrc, //也可以用exclude排除不需要檢查的目錄或者用.eslintignore
},
二、ESlint配置 1.配置文件類型與優(yōu)先級(jí)順序

.eslintrc.js - 使用 .eslintrc.js 然后輸出一個(gè)配置對(duì)象

.eslintrc.yaml - 使用 .eslintrc.yaml 或 .eslintrc.yml 去定義配置的結(jié)構(gòu)。

.eslintrc.yml

.eslintrc.json - 使用 .eslintrc.json 去定義配置的結(jié)構(gòu),ESLint 的 JSON 文件允許 JavaScript 風(fēng)格的注釋

.eslintrc(已棄用)

package.json - 在 package.json 里創(chuàng)建一個(gè) eslintConfig屬性,在那里定義你的配置

2.plugin屬性

ESLint 支持使用第三方插件(以eslint-plugin-開(kāi)頭的npm包),在使用插件之前,必須使用 npm 安裝。如eslint-plugin-react、eslint-plugin-vue等

module.exports = {
    "plugins": [
        "react"
    ],
    "extends": [
        "eslint:recommended"
    ],
    "rules": {
       "no-set-state": "off"
    }
}
3.extends屬性

一個(gè)配置文件可以被基礎(chǔ)配置中的已啟用的規(guī)則繼承。可以使用以下規(guī)則繼承:

(1)"eslint:recommended"

繼承Eslint中推薦的(打鉤的)規(guī)則項(xiàng)

module.exports = {
    "extends": "eslint:recommended",
    "rules": {
        
    }
}
(2)使用別人寫(xiě)好的規(guī)則包(以eslint-config-開(kāi)頭的npm包),如eslint-config-standard
module.exports = {
    "extends": "standard",
    "rules": {
        
    }
}
(3)使用Eslint插件中命名的配置
module.exports = {
    "plugins": [
        "react"
    ],
    "extends": [
        "eslint:recommended",
        "plugin:react/recommended"
    ],
    "rules": {
       "no-set-state": "off"
    }
}
(4)使用"eslint:all",繼承Eslint中所有的核心規(guī)則項(xiàng)
module.exports = {
    "extends": "eslint:all",
    "rules": {
        // override default options
        "comma-dangle": ["error", "always"],
        "indent": ["error", 2],
        "no-cond-assign": ["error", "always"],

        // disable now, but enable in the future
        "one-var": "off", // ["error", "never"]

        // disable
        "init-declarations": "off",
        "no-console": "off",
        "no-inline-comments": "off",
    }
}
4.rules屬性(根據(jù)自己的需要進(jìn)行配置) (1)Eslint部分核心規(guī)則
"rules": {
        /**
        **這些規(guī)則與 JavaScript 代碼中可能的錯(cuò)誤或邏輯錯(cuò)誤有關(guān)
        **/
        "for-direction":"error",//強(qiáng)制 “for” 循環(huán)中更新子句的計(jì)數(shù)器朝著正確的方向移動(dòng)
        "getter-return":"error",//強(qiáng)制在 getter 屬性中出現(xiàn)一個(gè) return 語(yǔ)句
        "no-await-in-loop":"error",//禁止在循環(huán)中 出現(xiàn) await
        "no-compare-neg-zer":"error",//禁止與 -0 進(jìn)行比較
        "no-cond-assign":[//禁止在條件語(yǔ)句中出現(xiàn)賦值操作符
            "error",
            "always"
        ],
        "no-console":[//禁用 console
            "error"
//            { "allow": ["warn", "error"] }
        ],
        "no-constant-condition":"error",//禁止在條件中使用常量表達(dá)式
        "no-control-regex":"error",//禁止在正則表達(dá)式中使用控制字符
        "no-debugger":"error",//禁用 debugger
        "no-dupe-args":"error",//禁止在 function 定義中出現(xiàn)重復(fù)的參數(shù)
        "no-dupe-keys":"error",//禁止在對(duì)象字面量中出現(xiàn)重復(fù)的鍵
        "no-duplicate-case":"error",//禁止重復(fù) case 標(biāo)簽
        "no-empty":"error",//禁止空塊語(yǔ)句
        "no-empty-character-class":"error",//禁止在正則表達(dá)式中出現(xiàn)空字符集
        "no-ex-assign":"error",//禁止對(duì) catch 子句中的異常重新賦值
        "no-extra-boolean-cast":"error",//禁止不必要的布爾類型轉(zhuǎn)換
        "no-extra-parens":"error",//禁止冗余的括號(hào)
        "no-extra-semi":"error",//禁用不必要的分號(hào)
        "no-func-assign":"error",//禁止對(duì) function 聲明重新賦值
        "no-inner-declarations":"error",//禁止在嵌套的語(yǔ)句塊中出現(xiàn)變量或 function 聲明
        "no-invalid-regexp":"error",//禁止在 RegExp 構(gòu)造函數(shù)中出現(xiàn)無(wú)效的正則表達(dá)式
        "no-irregular-whitespace":"error",//禁止不規(guī)則的空白
        "no-obj-calls":"error",//禁止將全局對(duì)象當(dāng)作函數(shù)進(jìn)行調(diào)用
        "no-prototype-builtins":"error",//禁止直接使用 Object.prototypes 的內(nèi)置屬性
        "no-regex-spaces":"error",//禁止正則表達(dá)式字面量中出現(xiàn)多個(gè)空格
        "no-sparse-arrays": "error",//禁用稀疏數(shù)組
        "no-template-curly-in-string":"error",//禁止在常規(guī)字符串中出現(xiàn)模板字面量占位符語(yǔ)法
        "no-unexpected-multiline":"error",//禁止使用令人困惑的多行表達(dá)式
        "no-unreachable":"error",//禁止在 return、throw、continue 和 break 語(yǔ)句后出現(xiàn)不可達(dá)代碼
        "no-unsafe-finally":"error",//禁止在 finally 語(yǔ)句塊中出現(xiàn)控制流語(yǔ)句
        "no-unsafe-negation":"error",//禁止對(duì)關(guān)系運(yùn)算符的左操作數(shù)使用否定操作符
        "use-isnan":"error",//要求調(diào)用 isNaN()檢查 NaN
        "valid-jsdoc":"error",//強(qiáng)制使用有效的 JSDoc 注釋
        "valid-typeof":"error",//強(qiáng)制 typeof 表達(dá)式與有效的字符串進(jìn)行比較
        /**
        **最佳實(shí)踐
        **/
        "accessor-pairs":"error",//強(qiáng)制getter/setter成對(duì)出現(xiàn)在對(duì)象中
        "array-callback-return":"error",//強(qiáng)制數(shù)組方法的回調(diào)函數(shù)中有 return 語(yǔ)句
        "block-scoped-var":"error",//把 var 語(yǔ)句看作是在塊級(jí)作用域范圍之內(nèi)
        "class-methods-use-this":"error",//強(qiáng)制類方法使用 this
        "complexity":"error"http://限制圈復(fù)雜度
        .....
    }
(2)eslint-plugin-vue中的規(guī)則
"rules": {

????????/* for vue */

????????// 禁止重復(fù)的二級(jí)鍵名

????????// @off 沒(méi)必要限制

????????"vue/no-dupe-keys":?"off",

????????// 禁止出現(xiàn)語(yǔ)法錯(cuò)誤

????????"vue/no-parsing-error":?"error",

????????// 禁止覆蓋保留字

????????"vue/no-reservered-keys":?"error",

????????// 組件的 data 屬性的值必須是一個(gè)函數(shù)

????????"vue/no-shared-component-data":?"off",

????????// 禁止