React配置eslint+Airbnb規(guī)則

Eslint Style Demo

配置React+Eslint+Airbnb

新建項目

按照上一篇文章的方法新建一個新項目eslint-style-demo

安裝eslint

  • 安裝eslint,可選本地安裝或者全局安裝与纽,這里選擇本地安裝
npm i -D eslint
  • 初始化并生成配置文件.eslintrc.js,各初始化參數(shù)可以先隨便選,后面再做修改
./node_modules/.bin/eslint --init
  • 安裝對babel和react的支持
npm i -D babel-eslint eslint-plugin-react
  • 修改.eslintrc.js配置文件如下,打開一個js文件可以查看eslint效果
module.exports = {
    "env": {
        "browser": true,
        "es6": true,
        "node": true
    },
    "extends":  [
        "eslint:recommended",
        "plugin:react/recommended"
    ],
    "globals": {
        "Atomics": "readonly",
        "SharedArrayBuffer": "readonly",
        "Babel": true,
        "React": true
    },
    "parser": "babel-eslint",
    "parserOptions": {
        "ecmaFeatures": {
            "jsx": true
        },
        "ecmaVersion": 2018,
        "sourceType": "module"
    },
    "plugins": [
        "react"
    ],
    "rules": {
    }
};

引入Airbnb規(guī)則

  • 安裝相關(guān)插件
npm i -D eslint-config-airbnb eslint-plugin-import eslint-plugin-jsx-a11y
  • 修改.eslintrc.js配置文件塘装,設(shè)置extends部分為airbnb規(guī)則急迂,增加rules
module.exports = {
    "env": {
        "browser": true,
        "commonjs": true,
        "es6": true
    },
    "extends": [
        "airbnb",
    ],
    "globals": {
        "Atomics": "readonly",
        "SharedArrayBuffer": "readonly",
        "Babel": true,
        "React": true
    },
    "parser": "babel-eslint",
    "parserOptions": {
        "ecmaFeatures": {
            "jsx": true
        },
        "ecmaVersion": 2018,
        "sourceType": "module"
    },
    "plugins": [
        "react"
    ],
    "rules": {
        //關(guān)閉換行符操作系統(tǒng)格式問題
        "linebreak-style": [
            "off",
            "unix"
        ],
        "quotes": [
            "error",
            "single"
        ],
        "semi": [
            "error",
            "always"
        ],
        // 禁止縮進錯誤
        "indent": 0,
        // 關(guān)閉不允許使用 no-tabs
        "no-tabs": "off",
        "no-console": 1,
        // 設(shè)置不沖突 underscore 庫
        "no-underscore-dangle":0,
        // 箭頭函數(shù)直接返回的時候不需要 大括號 {}
        "arrow-body-style": [2, "as-needed"],
        "no-alert":"error",
 
        // 設(shè)置是否可以重新改變參數(shù)的值
        "no-param-reassign": 0,
        // 允許使用 for in
        "no-restricted-syntax": 0,
        "guard-for-in": 0,
        // 不需要每次都有返回
        "consistent-return":0,
        // 允許使用 arguments
        "prefer-rest-params":0,
        // 允許返回 await
        "no-return-await":0,
        // 不必在使用前定義 函數(shù)
        "no-use-before-define": 0,
        // 允許代碼后面空白
        "no-trailing-spaces": 0,
 
        // 關(guān)閉大括號內(nèi)的換行符要求
        "object-curly-newline": 0,
 
        // 有一些 event 的時候,不需要 role 屬性蹦肴,不需要其他解釋
        "jsx-a11y/no-static-element-interactions":0,
        "jsx-a11y/click-events-have-key-events":0,
        // 類成員之間空行問題
        "lines-between-class-members":0,
 
 
        // 不區(qū)分是否在 despendencies
        "import/no-extraneous-dependencies": 0,
        // 引用時候根據(jù)根目錄基礎(chǔ)
        "import/no-unresolved": 0,
 
        // 關(guān)閉解構(gòu)賦值報錯
        "react/destructuring-assignment": 0,   
        // 允許在 .js 和 .jsx 文件中使用  jsx
        "react/jsx-filename-extension": [1, { "extensions": [".js", ".jsx"] }],
        // jsx > 緊跟著屬性
        "react/jsx-closing-bracket-location": [1, "after-props"],
        // 不區(qū)分是否是 無狀態(tài)組件
        "react/prefer-stateless-function": 0僚碎,
        // prop-types忽略children屬性
        "react/prop-types": [1, { ignore: ["children"]}],
        // 關(guān)閉禁止prop-types類型
        "react/forbid-prop-types": 0,
        // 關(guān)閉default-props檢查
        "react/require-default-props":0
    }
};
  • 在App.js組件測試查看效果

參考文獻

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末阴幌,一起剝皮案震驚了整個濱河市勺阐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌矛双,老刑警劉巖渊抽,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異议忽,居然都是意外死亡懒闷,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進店門栈幸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來愤估,“玉大人,你說我怎么就攤上這事侦镇×榇” “怎么了?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵壳繁,是天一觀的道長震捣。 經(jīng)常有香客問我荔棉,道長,這世上最難降的妖魔是什么蒿赢? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任润樱,我火速辦了婚禮,結(jié)果婚禮上羡棵,老公的妹妹穿的比我還像新娘壹若。我一直安慰自己,他們只是感情好皂冰,可當我...
    茶點故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布店展。 她就那樣靜靜地躺著,像睡著了一般秃流。 火紅的嫁衣襯著肌膚如雪赂蕴。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天舶胀,我揣著相機與錄音概说,去河邊找鬼。 笑死嚣伐,一個胖子當著我的面吹牛糖赔,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播轩端,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼放典,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了船万?” 一聲冷哼從身側(cè)響起刻撒,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤骨田,失蹤者是張志新(化名)和其女友劉穎耿导,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體态贤,經(jīng)...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡舱呻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了悠汽。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片箱吕。...
    茶點故事閱讀 38,814評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖柿冲,靈堂內(nèi)的尸體忽然破棺而出茬高,到底是詐尸還是另有隱情,我是刑警寧澤假抄,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布怎栽,位于F島的核電站丽猬,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏熏瞄。R本人自食惡果不足惜脚祟,卻給世界環(huán)境...
    茶點故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望强饮。 院中可真熱鬧由桌,春花似錦、人聲如沸邮丰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽剪廉。三九已至邑雅,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間妈经,已是汗流浹背淮野。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留吹泡,地道東北人骤星。 一個月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像爆哑,于是被迫代替她去往敵國和親洞难。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,728評論 2 351

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

  • ESLint 配置 ESlint 被設(shè)計為完全可配置的揭朝,這意味著你可以關(guān)閉每一個規(guī)則而只運行基本語法驗證队贱,或混合和...
    靜默虛空閱讀 41,251評論 3 14
  • ESLint 簡介 ESLint是一個開源的JavaScript代碼檢查工具柱嫌,其作者是大名鼎鼎的“紅寶書”《Jav...
    AndyChen閱讀 6,376評論 1 3
  • 兩個月之前在項目中就開始使用 Eslint ,當時直接 copy 別人的 .eslintrc.js 文件屯换,感覺好復(fù)...
    dkvirus閱讀 111,922評論 33 190
  • 一编丘、JSLint JSHint ESLint 參考前端工具考 - ESLint 篇JS Linter 進化史 C ...
    合肥黑閱讀 76,636評論 0 47
  • 前幾天在老家喝了婆婆做的銀耳湯,好喝的不要不要的彤悔,回到廣州后嘉抓,心里一直惦記著那味道,于是開始在某寶搜索食材晕窑,銀耳抑片。...
    簡安胡同閱讀 313評論 0 0