一、安装

npm i -D eslint
npm i babel-eslint \
eslint-config-airbnb \ // Airbnb的编码规范是在业界非常流行的一套规范
eslint-loader \
eslint-plugin-import \
eslint-plugin-jsx-a11y \
eslint-plugin-node \
eslint-plugin-promise \
eslint-plugin-react -g

二、配置文件

  1. 新建.eslintsrc文件,在根目录下面。

  2. 对于与.eslintrc文件进行设置

1)每个环境的全局变量都不尽相同(如 nodejs 中没有 DOM 相关的全局变量)。在配置文件中可以自由的指定执行环境。

// .eslintrc.js
module.exports = {
env: {
browser: true,
node: true,
},
};
(2)全局变量。如果你想在一个源文件里使用全局变量,推荐你在 ESLint 中定义这些全局变量,这样 ESLint 就不会发出警告了。
// .eslintrc.js
module.exports = {
globals: {
var1: true,
var2: true,
},
};
(3)规则 在配置文件中可以设置一些规则。这些规则的等级有三种: "off" 或者 0:关闭规则
"warn" 或者 1:打开规则,并且作为一个警告(不影响exit code)
"error" 或者 2:打开规则,并且作为一个错误(exit code将会是1)
也可以通过注释来取消 /* eslint-disable */

以下是简单的配置文件:

{
"env": {
"browser": true,
"commonjs": true,
"es6": true
},
"parser": "babel-eslint",
"extends": "airbnb",
"parserOptions": {
"ecmaFeatures": 6,
"sourceType": "module"
},
"plugins": ["react"],
"rules": {
"camelcase": "off",
"arrow-parens": "off",
"no-console": "warn",
"no-unused-vars": "warn",
"no-return-assign": "off",
"no-param-reassign": ["error", { "props": false }],
"no-nested-ternary": "off",
"linebreak-style": 0,
"eslint-disable-next-line":0
}
}

3.webpack进行配置

我希望在项目开发的过程当中,每次修改代码,它都能够自动进行ESLint的检查。因为在我们改代
码的过程中去做一次检查,如果有错误,我们就能够很快地去定位到这个问题,由于是我们刚刚改
过的,因此立马把它修复掉就OK了。这就避免了我们每次改了一大堆代码之后,要去提交的时候,
再去跑一次ESLint,有可能有很多地方要去改,浪费我们的时间,因为你一下子就定位不到这个问
题在哪里了。同时我们每次改代码的时候去检测,也能改善我们写代码的规范性,让我们慢慢养成
规范写代码的习惯。在module下面的rules里面添加一个对象:需要加上 enforece: 'pre',
这叫预处理。
{
enforce: 'pre', // 在webpack编译之前进行检测
test: /.(js|jsx)$/,
loader: 'eslint-loader',
exclude: [ // 除去node_modules
path.resolve(__dirname, '../node_modules')
]
},

三、使用

  1. 通过命令行来启动 ,--ext命令行选项指定一个逗号分隔的扩展名列表eslint --ext .js --ext .jsx client/

  2. webpack进行配置使用,在pagekage.json


    "scripts": {
    "lint": "eslint --ext .js --ext .jsx client/"
    },
  3. eslint 修复,可能在使用eslint产生很多报错,可以通过工具进行修复, npm run lint-fix,也可以使用 /* eslint-disable */注释来清除错误。

"scripts": {
"lint": "eslint --ext .js --ext .jsx client/",
"lint-fix": "eslint --fix --ext .js --ext src/"
},

四、Git提交

  1. 安装 husky ,npm i husky -D
  2. 修改package.json的scripts
"scripts": {
...
"lint": "eslint --ext .js --ext .jsx client/",
"precommit": "npm run lint"
}

五、editorconfig设置

不同编辑器对文本的格式会有一定的区别,如果不统一一些规范,可能你跟别人合作的时候,每次更新下来别人的代码就会一大堆报错。

  1. 新建.editconfig文件
  2. 文件内容
root = true                     // 表示当前是项目根目录

[*]                             // 所有文件都使用配置
charset = utf-8 // 编码格式
indent_style = space // Tab键缩进的样式,由space和table两种 一般代码中是space
indent_size = 2 // 缩进size为2
end_of_line = lf // 以lf换行 默认win为crlf mac和linux为lf
insert_final_newline = true // 末尾加一行空行
trim_trailing_whitespace = true // 去掉行尾多余空格

Eslint使用(webpack中使用)的更多相关文章

  1. webpack中配置eslint

    首先安装eslint npm install eslint --save-dev 安装好这个工具后,初始化eslint npx eslint --init 这个时候会自动生成.eslintrc.js ...

  2. Webpack中hash与chunkhash的区别,以及js与css的hash指纹解耦方案

    文件的hash指纹通常作为前端静态资源实现增量更新的方案之一,Webpack是目前最流行的开源编译工具之一,其强大的功能也带来很多坑(当然,大部分麻烦其实都可以在官方文档中找到答案). 比如,在Web ...

  3. webpack中利用require.ensure()实现按需加载

    webpack中的require.ensure()可以实现按需加载资源包括js,css等,它会给里面require的文件单独打包,不和主文件打包在一起,webpack会自动配置名字,如0.js,1.j ...

  4. webpack中实现按需加载

    webpack中的require.ensure()可以实现按需加载资源包括js,css等,它会给里面require的文件单独打包,不和主文件打包在一起,webpack会自动配置名字,如0.js,1.j ...

  5. [转] webpack中配置Babel

    一.安装 npm install --save-dev babel-loader babel-core babel-preset-env 二.在webpack.config.js中配置module 1 ...

  6. [转]webpack中require和import的区别

    webpack中可以写commonjs格式的require同步语法,可以写AMD格式的require回调语法,还有一个require.ensure,以及webpack自己定义的require.incl ...

  7. webpack中插件 prerender-spa-plugin 来进行SEO优化(二十四)

    vue.react对于开发单页应用来说带来了很好的用户的体验,但是同样有缺点,比如首页加载慢,白屏或SEO等问题的产生.为什么会出现这种情况呢?我们之前开发单页应用是这样开发的,比如首页 index. ...

  8. 如何在webpack中成功引用到图片?

    打包图片时,你可曾遇到在产出目录文件夹找不到图片,即便找到了,但是页面说引用不到资源?页面上或者文件中引用的图片地址不对? 一.在webpack中引入图片需要url-loader //webpack配 ...

  9. webpack中如何使用vue

    1.安装 vue包:npm i vue -S 2.由于在webpack中,推荐使用.vue这个组件模版文件来定义组件,不然会出现vue.js移动和一些高级语法的不支持,因此需要安装能解析这种文件的lo ...

  10. Webpack中publicPath设置

    webpack中的path是当我们build的时候,输出项目打包文件的位置. webpack中的publicPath是我们打算放到web服务器下的目录,如果我们要放到网站的根目录下,那么就无需设置.如 ...

随机推荐

  1. Spring5中的DispatcherServlet初始化

    Spring MVC像许多其它Web框架,被设计围绕前端控制器(DispatcherServlet)实际的工作是由可配置的,委托组件执行提供了一种用于请求处理的共享算法.这个模型是灵活的,支持不同的工 ...

  2. Android NDK学习(一):目录结构解析

    我们配置好NDK环境后,基本可以看到其目录结构如下图: 下面我们来分析一下NDK根目录的结构: ndk-build:该Shell脚本是Android NDK构建系统的起始点,一般在项目中仅仅执行这一个 ...

  3. ADB驱动

    Windows 7 64位下使用ADB驱动 什么是ADB? adb的全称为Android Debug Bridge,就是起到调试桥的作用.通过adb我们可以在Eclipse中方面通过DDMS来调试An ...

  4. #Java学习之路——基础阶段(第二篇)

    我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...

  5. 第73节:Java中的HTTPServletReauest和HTTPServletResponse

    第73节:Java中的HTTPServletReauest和HTTPServletResponse HTTP协议 客户端与服务器端通讯的一种规则. request: 请求行 请求头 请求体 respo ...

  6. jQuery之animate()用法

    最近在学习jQuery,看到一个很有意思的函数animate(),但是在网上却没有查到相关的详细资料,于是打算参考jQuery API,自己总结一下. 概述 animate() 方法执行 CSS 属性 ...

  7. Ubuntu 18.04安装配置pure-ftpd解决中文乱码问题

    之前用的是vsftpd配置ftp服务器,前面用的挺好,没什么问题,但是后面接收设备上传的文件夹时发现了一个大坑,当设备上传的文件夹名字中包含中文时,在Linux上显示的是乱码...各种转码都不行,折腾 ...

  8. 树莓派MQTT客户端搭建

    树莓派安装和实现MQTT协议 下载Mosquitto 更新软件源:sudo apt-get  update 下载g++编译器:sudo apt-get install g++ 安装:sudo apt- ...

  9. 超详细的 Redis Cluster 官方集群搭建指南

    今天从 0 开始搭建 Redis Cluster 官方集群,解决搭建过程中遇到的问题,超详细. 安装ruby环境 因为官方提供的创建集群的工具是用ruby写的,需要ruby2.2.2+版本支持,rub ...

  10. python连接Greenplum数据库

    配置greenplum客户端认证 配置pg_hba.conf cd /home/gpadmin/gpdbdata/master/gpseg- vim pg_hba.conf 增加 host all g ...