vsCode使用eslint

eslint 查詢 https://eslint.org/

安裝
// 首先全局安裝 eslint 
yarn global add eslint 
簡單配置
// 使用AirBnb 規(guī)則 
eslint --init
// 推薦選擇 javascript 文件類型 json文件的話 在里面寫注釋有點問題
如果要設(shè)置版本(airbnb)

eslint 使用的時候 需要依賴 eslint-config-airbnbeslint-plugin-importeslint-plugin-jsx-a11y劲藐、eslint-plugin-react

 "eslint-config-airbnb": "16.1.0",
 "eslint-plugin-import": "^2.8.0",
 "eslint-plugin-jsx-a11y": "^6.0.3",
 "eslint-plugin-react": "^7.6.1",
// 可以使用對應(yīng)版本
yarn add eslint-config-airbnb@16.1.0 --dev
自定義規(guī)則

eslintrc.js 是對當(dāng)前工作區(qū)設(shè)置,不管在哪個工作項目

  • elintrc配置


    配置項
extentds: 使用擴展規(guī)則叠赦,可以多個马靠,本文使用['airbnb']
env: 你的腳本將要運行在什么環(huán)境中 ``
rules: 開啟規(guī)則和發(fā)生錯誤時報告的級別 級別分為三種推薦使用[1,{}]定義
      0或’off’:關(guān)閉規(guī)則篇梭。 
      1或’warn’:打開規(guī)則赏表,并且作為一個警告(并不會導(dǎo)致檢查不通過)检诗。 
      2或’error’:打開規(guī)則,并且作為一個錯誤 (退出碼為1瓢剿,檢查不通過)逢慌。

      參數(shù)說明: 
      參數(shù)1 : 錯誤等級 
      參數(shù)2 : 處理方式
globals:定義全局變量  針對可能需要使用到 比如windows 這些可以配置
      "window": true,
      "document": true,

參考 寬松rules

"rules": {
    "react/no-string-refs": [1],
    "react/no-render-return-value": [1],
    "jsx-a11y/no-noninteractive-element-interactions": [1],
    "react/no-unused-prop-types": [1],

    "no-case-declarations": [0],
    "arrow-body-style": [0],
    "generator-star-spacing": [0],
    "global-require": [1],
    "import/extensions": [0],
    "import/no-extraneous-dependencies": [0],
    "import/no-unresolved": [0],
    "import/prefer-default-export": [0],
    "jsx-a11y/no-static-element-interactions": [0],
    "no-bitwise": [0],
    "no-cond-assign": [0],
    "no-else-return": [0],
    "no-nested-ternary": [0],
    "no-restricted-syntax": [0],
    "no-use-before-define": [0],
    "react/forbid-prop-types": [0],
    "react/jsx-filename-extension": [1, {
      "extensions": [".js"]
    }],
    "react/jsx-no-bind": [0],
    "react/prefer-stateless-function": [0],
    "react/prop-types": [0],
    "require-yield": [1],
    "jsx-a11y/anchor-is-valid": [0],
    "no-underscore-dangle": [0],
    "object-curly-newline": [0],
    "func-names": [0],
    "react/no-array-index-key": [0],
    "jsx-a11y/click-events-have-key-events": [0],
    "no-plusplus": [0],
    "linebreak-style": [
      0,
      "error",
      "windows"
    ],
    // 正確的使用const 在this.props解構(gòu)的時候, 為了簡便使用了let
    "prefer-const": [0],
    // 不允給參數(shù)重新賦值 
    "no-param-reassign": [0],
    // 函數(shù)未被調(diào)用 對應(yīng)這種表達(dá)式cb && cb()會報錯
    "no-unused-expressions": [0],
    // 必須指定defaultProps, 但是對于很多組件,不傳props很也是一種狀態(tài)
    "react/require-default-props": [0],
    "jsx-a11y/label-has-for": [0],
    // 多個操作符需要加括號, 明確指定先后順序
    "no-mixed-operators": [0],
    "react/no-find-dom-node": [0],
    "max-len": [0],
    // 箭頭函數(shù)不返回賦值語句
    "no-return-assign": [0],
    // tabIndex屬性不能加在 不是focusable元素上
    "jsx-a11y/no-noninteractive-tab": [0],
    "jsx-a11y/no-noninteractive-tabindex": [0],

    // react class 函數(shù)書寫順序
    "react/sort-comp": ["error", {
      "order": [
        "static-methods",
        "lifecycle",
        "/^handle.+$/",
        "getters",
        "setters",
        "/^(get|set)(?!(InitialState$|DefaultProps$|ChildContext$)).+$/",
        "everything-else",
        "/^render.+$/",
        "render"
      ]
    }]
  },
  "parserOptions": {
    "ecmaFeatures": {
      "experimentalObjectRestSpread": true
    }
  }

嚴(yán)格rules

  // 涉及到工作區(qū) 未能檢測到 忽略這個提醒
    "import/no-extraneous-dependencies": [0],
    //   // 函數(shù)未被調(diào)用 對應(yīng)這種表達(dá)式cb && cb()會報錯
    "no-unused-expressions": [2, { "allowShortCircuit": true }],
    // 對于prop中使用bind提示
    "react/jsx-no-bind": [
      1,
      {
        'ignoreRefs': true,
        'allowArrowFunctions': true
      }
    ],
    // 對proptypes 類型不限制
    "react/forbid-prop-types": [0],
    // 暫時忽略屬性類型檢查
    "react/prop-types": [0],
    "react/jsx-filename-extension": [1, {
      "extensions": [".js"]
    }],
    // react class 函數(shù)書寫順序
    "react/sort-comp": ["error", {
      "order": [
        "static-methods",
        "lifecycle",
        "/^handle.+$/",
        "getters",
        "setters",
        "/^(get|set)(?!(InitialState$|DefaultProps$|ChildContext$)).+$/",
        "everything-else",
        "/^render.+$/",
        "render"
      ]
    }]
  • vsCode配置
    在vsCode配置中 加入以下設(shè)置可以保存的時候自動保存為符合eslint規(guī)則的代碼(不是全部規(guī)則)
"eslint.autoFixOnSave": true,

如果在windows環(huán)境中 換行符的話可以通過vs用戶配置修改成LF模式
擴展閱讀(https://juejin.im/entry/5c289c536fb9a049ff4e36e0)

  • PropTypes (當(dāng)然可以 ts

可以使用vsCode 插件React PropTypes Generate可以快速生成PropTypes

參考類型
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市间狂,隨后出現(xiàn)的幾起案子攻泼,更是在濱河造成了極大的恐慌,老刑警劉巖鉴象,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件忙菠,死亡現(xiàn)場離奇詭異,居然都是意外死亡炼列,警方通過查閱死者的電腦和手機只搁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進(jìn)店門音比,熙熙樓的掌柜王于貴愁眉苦臉地迎上來俭尖,“玉大人,你說我怎么就攤上這事洞翩』纾” “怎么了?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵骚亿,是天一觀的道長已亥。 經(jīng)常有香客問我,道長来屠,這世上最難降的妖魔是什么虑椎? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任震鹉,我火速辦了婚禮,結(jié)果婚禮上捆姜,老公的妹妹穿的比我還像新娘传趾。我一直安慰自己,他們只是感情好泥技,可當(dāng)我...
    茶點故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布浆兰。 她就那樣靜靜地躺著,像睡著了一般珊豹。 火紅的嫁衣襯著肌膚如雪簸呈。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天店茶,我揣著相機與錄音蜕便,去河邊找鬼。 笑死贩幻,一個胖子當(dāng)著我的面吹牛玩裙,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播段直,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼吃溅,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了鸯檬?” 一聲冷哼從身側(cè)響起决侈,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎喧务,沒想到半個月后赖歌,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡功茴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年庐冯,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片坎穿。...
    茶點故事閱讀 39,703評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡展父,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出玲昧,到底是詐尸還是另有隱情栖茉,我是刑警寧澤,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布孵延,位于F島的核電站吕漂,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏尘应。R本人自食惡果不足惜惶凝,卻給世界環(huán)境...
    茶點故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一吼虎、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧苍鲜,春花似錦鲸睛、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至遍坟,卻和暖如春拳亿,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背愿伴。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工肺魁, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人隔节。 一個月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓鹅经,卻偏偏與公主長得像,于是被迫代替她去往敵國和親怎诫。 傳聞我的和親對象是個殘疾皇子瘾晃,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,601評論 2 353

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

  • 一、JSLint JSHint ESLint 參考前端工具考 - ESLint 篇JS Linter 進(jìn)化史 C ...
    合肥黑閱讀 76,647評論 0 47
  • ESLint 配置 ESlint 被設(shè)計為完全可配置的幻妓,這意味著你可以關(guān)閉每一個規(guī)則而只運行基本語法驗證蹦误,或混合和...
    靜默虛空閱讀 41,283評論 3 14
  • 問題 代碼沒有提示: 許多剛接觸RN開發(fā)的非前端同學(xué),都會問“哪個編輯器有智能提示肉津?”强胰。。妹沙。而對于前端同學(xué)來說偶洋,現(xiàn)...
    宋00閱讀 2,570評論 1 6
  • 朋友們,如果你喜歡寫作距糖,如果你看到他人的文章想要轉(zhuǎn)發(fā)玄窝,那就請你想一想這個作品值不值得傳播,因為這已關(guān)系到他人生活肾筐。...
    楓子言_閱讀 118評論 0 1
  • 很久沒有更文哆料,直到你一次一次的問我,春天吗铐,你什么時候更文。我說明天杏节』I可是到了次日典阵,我又拖著,你來又問我:春天镊逝,你是...
    醉花令閱讀 425評論 1 3