如何配置Eslint检测React代码

1.Eslint介绍

Eslint 是一个JavaScript验证工具,有了它可以让你的编辑器像ide一样进行一些静态的错误提示功能.

多打了一个分号

应该打冒号的地方打成了赋值符号
并没有找到变量bbb
返回的组件为空

2.编辑器安装Eslint插件

  • sublime text可以用这两个插件:
    • sublimeLiter
    • sublimeLiter-contrib-eslint
  • atom可以用这个两个插件:
    • linter
    • linter-eslint

3.npm安装相关组件

安装linter

$ npm install linter

安装eslint

$ npm install eslint -g

安装eslint-plugin-react(不用加-g)

识别react中的一些语法检验
$ npm install eslint-plugin-react

安装babel-eslint

如果用到了es6的新语法, 需要安装babel-eslint,不然会把箭头函数识别成错误
$ npm install babel-eslint

4.在项目的根目录创建配置文件.eslintrc.json

eslint会根据.eslintrc.json定义的规则进行代码检测(在mac中的.开头的文件为隐藏文件);
eslint官方给出的一些有关react配置的文档:
https://github.com/yannickcr/eslint-plugin-react

一般有两种做法:

  1. 宽松的定义,只检验一些语法上的错误.
  2. 严谨的定义,可以当团队书写代码的规范,把规范错误定义成警告, 语法错误定义成错误

我自己用的是相对宽松的定义,定义如下:

{
    //文件名 .eslintrc.json
    "env": {
        "browser": true,
        "es6": true,
        "node": true,
        "commonjs": true
    },
    "extends": "eslint:recommended",
    "installedESLint": true,
    "parserOptions": {
        "ecmaFeatures": {
            "experimentalObjectRestSpread": true,
            "jsx": true,
            "arrowFunctions": true,
            "classes": true,
            "modules": true,
            "defaultParams": true
        },
        "sourceType": "module"
    },
    "parser": "babel-eslint",
    "plugins": [
        "react"
    ],
    "rules": {
        "linebreak-style": [
            "error",
            "unix"
        ],
        //"semi": ["error", "always"],
        "no-empty": 0,
        "comma-dangle": 0,
        "no-unused-vars": 0,
        "no-console": 0,
        "no-const-assign": 2,
        "no-dupe-class-members": 2,
        "no-duplicate-case": 2,
        "no-extra-parens": [2, "functions"],
        "no-self-compare": 2,
        "accessor-pairs": 2,
        "comma-spacing": [2, {
            "before": false,
            "after": true
        }],
        "constructor-super": 2,
        "new-cap": [2, {
            "newIsCap": true,
            "capIsNew": false
        }],
        "new-parens": 2,
        "no-array-constructor": 2,
        "no-class-assign": 2,
        "no-cond-assign": 2
    }
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • ESLint 配置 ESlint 被设计为完全可配置的,这意味着你可以关闭每一个规则而只运行基本语法验证,或混合和...
    静默虚空阅读 41,849评论 3 14
  • 写在开头 先说说为什么要写这篇文章, 最初的原因是组里的小朋友们看了webpack文档后, 表情都是这样的: (摘...
    Lefter阅读 5,445评论 4 31
  • 创建 dev 目录,npm init --yes 生成 package.json,确保安装 webpack web...
    赛亚人之神阅读 691评论 1 1
  • EsLint入门学习整理 这两天因为公司要求,就对ESLint进行了初步的了解,网上的内容基本上都差不多,但是内容...
    点柈阅读 26,229评论 3 42
  • 还记得从印尼回来后的半年多的时间里自己微信里的人也仅仅是200多个,现在刚以几乎每天多认识一个人的速度递增。这...
    ouzar阅读 1,084评论 0 0

友情链接更多精彩内容