npm i --save-dev babel-eslint
npm i --save-dev eslint-loader
npm info "eslint-config-airbnb@latest" peerDependencies
{ eslint: '^5.16.0 || ^6.1.0',
'eslint-plugin-import': '^2.18.2',
'eslint-plugin-jsx-a11y': '^6.2.3',
'eslint-plugin-react': '^7.14.3',
'eslint-plugin-react-hooks': '^1.7.0' } npm i --save-dev eslint@5.16.0
npm i --save-dev eslint-plugin-import@2.18.2
npm i --save-dev eslint-plugin-jsx-a11y@6.2.3
npm i --save-dev eslint-plugin-react@7.14.3
npm i --save-dev eslint-plugin-react-hooks@1.7.0
在根目录创建.eslintrc文件

.eslintrc文件内容如下
{
"parser": "babel-eslint",
"extends": [
"airbnb"
],
"rules": {
// 缩进改为4空格,默认2空格
"indent": [0, 2],
// 对象尾随逗号取消
"comma-dangle": [2, "never"]
},
"plugins": [
"react"
],
"env": {
"browser": true,
"node": true,
"jasmine": true
}
}

1). 添加包

  • npm install eslint --save-dev
  • npm install eslint-loader --save-dev
  • npm install eslint-plugin-html --save-dev 
    • 该插件用与检查写在script标签中的代码
  • npm install babel-eslint --save-dev
    • babel-eslint解析器是一种使用频率很高的解析器,现在很多项目都使用了es6,为了兼容性考虑基本都使用babel插件对代码进行编译。而用babel编译 后的代码使用babel-eslint这款解析器可以避免不必要的麻烦
  • npm install eslint-plugin-react --save-dev
  • npm install eslint-config-airbnb --save-dev
  • npm install eslint-plugin-import --save-dev
  • npm install eslint-plugin-jsx-a11y --save-dev

2)eslint 配置项

  • root :

    • 限定配置文件的使用范围
  • parse:
    • 指定eslint的解析器
  • parserOptions:
    • 设置解析器选项
  • extends:
    • 指定eslint规范
    • extends可以使用eslint官方推荐的,也可以使用第三方的,如:aribnb, google, standard。
      使用第三方的airbnb
  •  
    plugins:
    • 引用第三方的插件
  • env:
    • 指定代码运行的宿主环境
  • rules:
    • 启用额外的规则或覆盖默认的规则
    • /**
      * "off" 或 0 - 关闭规则
      * "warn" 或 1 - 开启规则,使用警告级别的错误:warn (不会导致程序退出),
      * "error" 或 2 - 开启规则,使用错误级别的错误:error (当被触发的时候,程序会退出)
      */

        

  • globals:
    • 声明在代码中的自定义全局变量

4)eslint官方提供了3种预安装包

  • eslint-config-google:
    • Google标准
    • npm install eslint eslint-config-google -D
  • eslint-config-airbnb
    • Airbnb标准,它依赖eslint, eslint-plugin-import, eslint-plugin-react, and eslint-plugin-jsx-a11y等插件,并且对各个插件的版本有所要求
    • 你可以执行以下命令查看所依赖的各个版本:
      • npm info "eslint-config-airbnb@latest" peerDependencies
    • 你会看到以下输出信息,包含每个了每个plugins的版本要求
      •   

        { eslint: '^5.16.0 || ^6.1.0',
        'eslint-plugin-import': '^2.18.2',
        'eslint-plugin-jsx-a11y': '^6.2.3',
        'eslint-plugin-react': '^7.14.3',
        'eslint-plugin-react-hooks': '^1.7.0' }
    • 知道了每个plugins的版本要求后,代入以下命令执行安装即可使用
      • npm install eslint-config-airbnb eslint@^#.#.# eslint-plugin-jsx-a11y@^#.#.# eslint-plugin-import@^#.#.# eslint-plugin-react@^#.#.# -D
  • eslint-config-standard
    • Standard标准,它是一些前端工程师自定的标准
    • npm install eslint-config-standard eslint-plugin-standard eslint-plugin-promise -D

3). 在工程根目录下创建.eslintrc文件

{
"parser": "babel-eslint",
"extends": "airbnb",
"rules": {
"generator-star-spacing": [0],
"consistent-return": [0],
"react/forbid-prop-types": [0],
"react/jsx-filename-extension": [1, { "extensions": [".js"] }],
"global-require": [0],
"import/prefer-default-export": [0],
"react/jsx-no-bind": [0],
"react/prop-types": [0],
"react/prefer-stateless-function": [0],
"no-else-return": [0],
"no-restricted-syntax": [0],
"import/no-extraneous-dependencies": [0],
"no-use-before-define": [0],
"jsx-a11y/no-static-element-interactions": [0],
"no-nested-ternary": [0],
"arrow-body-style": [0],
"import/extensions": [0],
"no-bitwise": [0],
"no-cond-assign": [0],
"linebreak-style": [0],
"import/no-unresolved": [0],
"require-yield": [1],
"prefer-template":[0],
"no-undef":[0],
"no-param-reassign":[0],
"no-useless-escape":[0],
"no-plusplus":[0],
"no-mixed-operators":[0],
"object-shorthand":[0],
"no-console": [0],
"no-loop-func":[0],
"class-methods-use-this":[0],
"radix":[0],
"no-trailing-spaces":[0],
"comma-dangle": [0],
"no-underscore-dangle": [0],
"react/require-default-props": [0],
"no-unused-expressions": [0],
"react/sort-comp":[0],
"max-lines": [2,500],
"max-len": [2,125],
"react/jsx-boolean-value": [0],
"react/react-in-jsx-scope": [0],
"operator-assignment": [0],
"no-fallthrough": [0],
"react/no-array-index-key": [0],
"eqeqeq": [0],
"react/no-multi-comp": [0],
"react/no-unused-prop-types": [0],
"prefer-const": [0]
},
"parserOptions": {
"ecmaFeatures": {
"experimentalObjectRestSpread": true
}
}
}

webpack 添加eslint代码审查的更多相关文章

  1. 如何在VUE项目中添加ESLint

    如何在VUE项目中添加ESLint 1. 首先在项目的根目录下 新建 .eslintrc.js文件,其配置规则可以如下:(自己小整理了一份),所有的代码如下: // https://eslint.or ...

  2. vue-cli构建的项目手动添加eslint配置

    一.package.json里配置添加 1.scripts里添加快捷eslint检查命令 "lint": "eslint --ext .js,.vue src" ...

  3. vue + iview 怎样在vue项目下添加ESLint

    参考:https://segmentfault.com/a/1190000012019019?utm_source=tag-newest 使用iview框架的MenuGroup标签,vscode报红, ...

  4. 在React项目中添加ESLint

    1. 安装eslint npm install eslint --save-dev // 或者 yarn add eslint --dev 2. 初始化配置文件 npx eslint --init / ...

  5. 在vue项目中如何添加eslint

    随着vue的越做越好,更多的开发者选择使用vue,本篇记录如何在vue项目中添加eslint. 首先第一种就是在vue项目创建初始时就选择了创建,随着初始化一起代入到了项目当中,那么要是一开始觉得es ...

  6. webpack+vue+Eslint+husky+lint-staged 统一项目编码规范

    一. Eslint: 为什么我们要在项目中使用ESLint ESLint可以校验我们写的代码,给代码定义一个规范,项目里的代码必须按照这个规范写. 加入ESLint有非常多的好处,比如说可以帮助我们避 ...

  7. react+webpack+babel+eslint+redux+react-router+sass 环境快速搭建

    本文中的例子支持webpack-dev-server自动刷新及react热替换,使用了redux管理state,用react-router切换路由,用babel实现ES6语法书写,同时支持async/ ...

  8. 给vue项目添加ESLint

    eslint配置方式有两种: 注释配置:使用js注释来直接嵌入ESLint配置信息到一个文件里 配置文件:使用一个js,JSON或者YAML文件来给整个目录和它的子目录指定配置信息.这些配置可以写在一 ...

  9. atom添加eslint插件

    在atom编辑器里添加插件,操作步骤如下:以atom-ide-vue插件为例 //切换到插件目录cd /Users/name/.atom/packages //将需要下载插件的源代码拉下来git cl ...

随机推荐

  1. shell变量,字符串,数组

    一.shell变量定义: 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头: 中间不能有空格,可以使用下划线: 不能使用标点符号: 不能使用bash里的关键字. 变量使用: 使用一个定义过的 ...

  2. php str_shuffle()函数 语法

    php str_shuffle()函数 语法 str_shuffle()函数怎么用? php str_shuffle()函数用于随机的打乱字符串中所有字符,语法是str_shuffle(string) ...

  3. Qt对话框部分学习

    一.对话框部分常用内容 颜色对话框.文件对话框.字体对话框.输入对话框.消息对话框.进度对话框.错误对话框.向导对话框. 二.代码部分   //widget.h #ifndef MYWIDGET_H ...

  4. Android中应用锁的实现之账号盗取

    一.前言 前几天忙着公司的活,最近又可以歇歇了,休息不能不做事呀?今天就来研究一下Android中应用锁的实现.应用锁顾名思义就是对app进行加密,在打开app的时候需要输入指定的密码才能打开应用. ...

  5. nodejs在Windows 7上的搭建

    一.安装nodejs 去官网下载https://nodejs.org/download/,我选择下载node-v9.3.0-x64.msi ,最新版本, 安装路径放在了D盘,因为C盘的空间不够了,直接 ...

  6. vSphere Client部署OVA失敗:無效:SHA256(xxxxxxx.ovf)。

    通過vSphere Client部署OVA失敗. 您會看到此錯誤:OVF包無效,無法部署.以下清單文件條目(第1行)無效:SHA256(xxxxxxx.ovf). 原因 出現此問題的原因是vSpher ...

  7. Linux下dd和od命令备份查看硬盘mbr,并用vim修改!

    主引导记录(Master Boot Record,MBR),位于一个硬盘的0柱面.0盘面.1扇区,共512字节.具体划分依次为:引导代码区440字节.磁盘签名4字节.空白(Ox0000)2字节.MBR ...

  8. python 100day notes (1)

    x1 + x2 +x3 + x4 = 8 多少正整数解 上面的问题等同于将8个苹果分成四组每组至少一个苹果有多少种方案 即用三个隔板插7个空位. 答案C(7,3) =35 # __name__是Pyt ...

  9. HTML5: HTML5 介绍

    ylbtech-HTML5: HTML5 介绍 1. 什么是 HTML5?返回顶部   HTML5 是下一代 HTML 标准. HTML,HTML 4.01的上一个版本诞生于1999年.自从那儿以后, ...

  10. ACM-ICPC 比赛环境的使用

    ACM-ICPC 现场赛不同的赛站可能比赛环境不同,不过一般都是 Ubuntu 系统.附带的软件可能略有不同,可能会有使用习惯的差异导致效率下降或者无法运行代码,但是在终端下编译运行代码都是相同的.本 ...