当前位置:首页 > javascript技术文章 > 详解React开发必不可少的eslint配置

详细介绍React开发必不可少的eslint配置

  • 发布时间:
  • 作者:码农之家原创
  • 点击:140

这篇文章主要知识点是关于React、eslint、的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

趣学JavaScript:教孩子学编程
  • 类型:JavaScript大小:42.7 MB格式:PDF作者:NickMorgan,摩根,李强
立即下载

详解React开发必不可少的eslint配置

Eslint介绍

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

安装eslint

$ npm install eslint -g

项目需要安装的插件

  1. "babel-eslint": "^8.0.3",
  2. "eslint": "^4.13.1",
  3. "eslint-plugin-react": "^7.5.1",

配置详情

下面的配置涵盖了开发者所需要的绝大部分信息,rules中的值0、1、2分别表示不开启检查、警告、错误。你可以看到下面有些是0,如果有需要开启检查,可以自己修改为1或者2。

module.exports = {
  "env": {
    "browser": true,
    "commonjs": true,
    "es6": true
  },
  "extends": "eslint:recommended",
  "globals": {
    "$": true,
    "process": true,
    "__dirname": true
  },
  "parser": "babel-eslint",
  "parserOptions": {
    "ecmaFeatures": {
      "experimentalObjectRestSpread": true,
      "jsx": true
    },
    "sourceType": "module",
    "ecmaVersion": 7
  },
  "plugins": [
    "react"
  ],
  "rules": {
    "quotes": [2, "single"], //单引号
    "no-console": 0, //不禁用console
    "no-debugger": 2, //禁用debugger
    "no-var": 0, //对var警告
    "semi": 0, //不强制使用分号
    "no-irregular-whitespace": 0, //不规则的空白不允许
    "no-trailing-spaces": 1, //一行结束后面有空格就发出警告
    "eol-last": 0, //文件以单一的换行符结束
    "no-unused-vars": [2, {"vars": "all", "args": "after-used"}], //不能有声明后未被使用的变量或参数
    "no-underscore-dangle": 0, //标识符不能以_开头或结尾
    "no-alert": 2, //禁止使用alert confirm prompt
    "no-lone-blocks": 0, //禁止不必要的嵌套块
    "no-class-assign": 2, //禁止给类赋值
    "no-cond-assign": 2, //禁止在条件表达式中使用赋值语句
    "no-const-assign": 2, //禁止修改const声明的变量
    "no-delete-var": 2, //不能对var声明的变量使用delete操作符
    "no-dupe-keys": 2, //在创建对象字面量时不允许键重复
    "no-duplicate-case": 2, //switch中的case标签不能重复
    "no-dupe-args": 2, //函数参数不能重复
    "no-empty": 2, //块语句中的内容不能为空
    "no-func-assign": 2, //禁止重复的函数声明
    "no-invalid-this": 0, //禁止无效的this,只能用在构造器,类,对象字面量
    "no-redeclare": 2, //禁止重复声明变量
    "no-spaced-func": 2, //函数调用时 函数名与()之间不能有空格
    "no-this-before-super": 0, //在调用super()之前不能使用this或super
    "no-undef": 2, //不能有未定义的变量
    "no-use-before-define": 2, //未定义前不能使用
    "camelcase": 0, //强制驼峰法命名
    "jsx-quotes": [2, "prefer-double"], //强制在JSX属性(jsx-quotes)中一致使用双引号
    "react/display-name": 0, //防止在React组件定义中丢失displayName
    "react/forbid-prop-types": [2, {"forbid": ["any"]}], //禁止某些propTypes
    "react/jsx-boolean-value": 2, //在JSX中强制布尔属性符号
    "react/jsx-closing-bracket-location": 1, //在JSX中验证右括号位置
    "react/jsx-curly-spacing": [2, {"when": "never", "children": true}], //在JSX属性和表达式中加强或禁止大括号内的空格。
    "react/jsx-indent-props": [2, 4], //验证JSX中的props缩进
    "react/jsx-key": 2, //在数组或迭代器中验证JSX具有key属性
    "react/jsx-max-props-per-line": [1, {"maximum": 1}], // 限制JSX中单行上的props的最大数量
    "react/jsx-no-bind": 0, //JSX中不允许使用箭头函数和bind
    "react/jsx-no-duplicate-props": 2, //防止在JSX中重复的props
    "react/jsx-no-literals": 0, //防止使用未包装的JSX字符串
    "react/jsx-no-undef": 1, //在JSX中禁止未声明的变量
    "react/jsx-pascal-case": 0, //为用户定义的JSX组件强制使用PascalCase
    "react/jsx-sort-props": 2, //强化props按字母排序
    "react/jsx-uses-react": 1, //防止反应被错误地标记为未使用
    "react/jsx-uses-vars": 2, //防止在JSX中使用的变量被错误地标记为未使用
    "react/no-danger": 0, //防止使用危险的JSX属性
    "react/no-did-mount-set-state": 0, //防止在componentDidMount中使用setState
    "react/no-did-update-set-state": 1, //防止在componentDidUpdate中使用setState
    "react/no-direct-mutation-state": 2, //防止this.state的直接变异
    "react/no-multi-comp": 2, //防止每个文件有多个组件定义
    "react/no-set-state": 0, //防止使用setState
    "react/no-unknown-property": 2, //防止使用未知的DOM属性
    "react/prefer-es6-class": 2, //为React组件强制执行ES5或ES6类
    "react/prop-types": 0, //防止在React组件定义中丢失props验证
    "react/react-in-jsx-scope": 2, //使用JSX时防止丢失React
    "react/self-closing-comp": 0, //防止没有children的组件的额外结束标签
    "react/sort-comp": 2, //强制组件方法顺序
    "no-extra-boolean-cast": 0, //禁止不必要的bool转换
    "react/no-array-index-key": 0, //防止在数组中遍历中使用数组key做索引
    "react/no-deprecated": 1, //不使用弃用的方法
    "react/jsx-equals-spacing": 2, //在JSX属性中强制或禁止等号周围的空格
    "no-unreachable": 1, //不能有无法执行的代码
    "comma-dangle": 2, //对象字面量项尾不能有逗号
    "no-mixed-spaces-and-tabs": 0, //禁止混用tab和空格
    "prefer-arrow-callback": 0, //比较喜欢箭头回调
    "arrow-parens": 0, //箭头函数用小括号括起来
    "arrow-spacing": 0 //=>的前/后括号
  },
  "settings": {
    "import/ignore": [
      "node_modules"
    ]
  }
};

哦,老天,你还希望看到更多的react检查器,那就去 eslint-plugin-react 的github文档去慢慢翻译吧。

某些文件关闭eslint检查

你不总是希望所有的文件都开启eslint检查,那么,给单独的js文件关闭eslint的方式,只需要在该文件的最顶部加上一段注释。

/*eslint-disable*/
function test() {
  return true
}

给某一行js代码关闭eslint检查

关闭整个js文件的行为有点暴力,别担心,你还可以只给其中某段代码关闭eslint。

// eslint-disable-next-line
alert('foo')

eslint配置文件类型

eslint配置文件类型不只有js和json,其实包括下面这些:

  1. .eslintrc.js
  2. .eslintrc.yaml
  3. .eslintrc.yml
  4. .eslintrc.json
  5. .eslintrc
  6. package.json

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。

以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。

推荐内容

Java的构造方法和对象的创建

用java实现简单的学生信息管理系统方案实例

mysql 1067系统错误解决方案

如何使用python实现支付宝转账接口

使用pm2自动化部署node项目过程分享

展开 +

收起 -

javascript 相关电子书
学习笔记
网友NO.916527

基于JavaScript实现带数据验证和复选框的表单提交

实现: 1.用户至少选中某项,即表示选中该行,同时该行的数据验证通过,表单提交;否则,不提交。 html !DOCTYPE html html lang="en" head meta charset="UTF-8" title带数据验证和复选框的表单提交/title script src="../commonJqery/jquery-3.0.0.js" type="text/javascript"/script style type="text/css" table { border-collapse: collapse; } td,th { width: 40px; height: 100px; border:1px solid #000; } table tbody tr:hover { background-color: red; } table tbody tr:not(:first-child):hover {background-color: #666; } td input[name='number']{ width: 100px; } /style /head body form action="http://www.baidu.com" id="order_shopping" name="order_shopping" method="get" onsubmit="return checkShopping();" table id="table" class="fl" thead tr th商品名/th th单价/th th购买数量/th thinput id="both" type="checkbox" name="both" autocomplete="off"/th /tr /thead tbody tr td香蕉/td td100/td tdinput type="text" name="number" autocomplete="off" placeholder="请……

网友NO.153225

浅谈JavaScript面向对象--继承

一、继承的概念 子类共享父类的数据和方法的行为,就叫继承。 二、E55如何实现继承?探索JavaScript继承的本质 2.1构造函数之间的“复制粘贴” 第一条路是通过构造函数来继承,这可以理解为子类直接复制了父类构造函数的代码,然后按照一定的规矩“粘贴”在自己的构造函数中,为己所用。举个例子: 如果A要继承B的属性,是不是直接把this.name = name复制粘贴到A函数就可以了?简单粗暴。 所以在A中,直接执行B函数,不就等于执行了this.name = name吗。 直接这样尝试下,发现是不行的,这是因为B中的this指向B的实例化对象,A中的this指向A的实例化对象,所以要统一this的指向。 这样,就完成了一次合乎规范的构造函数之间的“代码复制粘贴”,也就是继承。这其实也是后面ES6中super关键字的实现原理。 2.2原型链上要“挤进一位来客” 当然,这还是不……

网友NO.252861

JavaScript创建对象的常用方式总结

本文实例讲述了JavaScript创建对象的常用方式。分享给大家供大家参考,具体如下: JS中没有类的概念,那么怎么创建对象呢?下面一一来细说! 传统的创建对象的方式: 1、创建Object的实例 var person = new Object();person.name = "Alice";person.age = 12;person.showName = function() { alert(this.name);}; 2、对象字面量形式创建单个对象 var person = { name : "Alice"; age : 12; showName : function() { alert(person.name); }}; 创建对象的五种设计模式 1、工厂模式 虽然Object构造函数和对象字面量都可以用来创建单个对象,但这个方式有个明显的缺点:使用同一个接口创建很多对象,会产生大量重复的代码。为了解决这个问题,开始使用工厂模式。 function createPerson(name, age) { var obj = new Object(); obj.name = name; obj.age = age; obj.showName = function() { alert(this.name); }; return obj;}var person1 = createPerson("Alice", 23);var person2……

网友NO.747003

深入解析JavaScript中的数字对象与字符串对象

JavaScript Number 对象 JavaScript 只有一种数字类型。 可以使用也可以不使用小数点来书写数字。 JavaScript 数字 JavaScript 数字可以使用也可以不使用小数点来书写: 实例 var pi=3.14; // 使用小数点var x=34; // 不使用小数点 极大或极小的数字可通过科学(指数)计数法来写: 实例 var y=123e5; // 12300000var z=123e-5; // 0.00123 所有 JavaScript 数字均为 64 位 JavaScript 不是类型语言。与许多其他编程语言不同,JavaScript 不定义不同类型的数字,比如整数、短、长、浮点等等。 在JavaScript中,数字不分为整数类型和浮点型类型,所有的数字都是由 浮点型类型。JavaScript采用IEEE754标准定义的64位浮点格式表示数字,它能表示最大值为±1.7976931348623157 x 10308,最小值为±5 x 10 -324 值 (aka Fraction/Mantissa)指数Sign 52 bits (0 - 51) 11 bits (50 - 62) 1 bit (63) 精度 整数(不使用小数点或指数计数法)最多……

网友NO.213775

Javascript es7中比较实用的两个方法示例

本文主要跟大家介绍了关于es7中两个比较实用的方法,分享出来供大家参考学习,下面话不多说,来一起看看详细的介绍: 一、、operator (求幂运算符)** console.log(2**3);//8console.log(4**4);//256//以往的写法console.log(Math.pow(2,3));//8console.log(Math.pow(4,4));//256 还不是很简单,两个*号就能进行求幂运算 1.Array.prototype.includes es6为字符串添加了一个includes方法,现在同样运用与数组 l=[1,2,3]l.includes(5)//false 跟数组一样 2.字符填充函数padStart 和 padEnd padStart() 在开始部位填充,返回一个给出长度的字符串,填充物给定字符串,把字符串填充到期望的长度。从字符串的左边开始 padEnd从字符串的尾端右边开始填充。第二个参数,你能实际上用一个任何长度的字符串。 console.log('react'.padStart(10).length) // " react" is 10console.log('backbone'.padStart(10).length) // " backbone" is 10 console.log('react'.pa……

<
1
>

电子书 编程教程 文档 软件 源码 视频

Copyright 2018-2020 xz577.com 码农之家

本站所有电子书资源不再提供下载地址,只分享来路

免责声明:网站所有作品均由会员网上搜集共同更新,仅供读者预览及学习交流使用,下载后请24小时内删除

版权投诉 / 书籍推广 / 赞助:QQ:520161757