玩命加载中 . . .

ESLint 使用和配置

一、简介

ESLint 是一个用来识别 ECMAScript 并且按照规则给出报告的代码检测工具,使用它可以避免某些低级错误并统一代码风格。ESLint 被设计为完全可配置的,主要有两种方式:

  • 在注释中配置:使用 JavaScript 注释直接把配置嵌入到 JS 文件中。
  • 配置文件:使用下面任一的文件来为全部的目录和它的子目录指定配置信息。
    • javascript:使用.eslintrc.js文件并导出一个包含配置的对象。
    • YAML:.eslintrc.yaml或者.eslintrc.yml
    • JSON:.eslintrc.json,并且此文件允许使用JS形式的注释
    • 废弃的用法:.eslintrc,此文件可以是JSON或者YAML
    • package.json:在package.json文件中创建eslintConfig属性,所有的配置包含在此属性中。

这些文件的优先级则是按照以上出现的顺序(.eslintrc.js > .eslintrc.yaml > .eslintrc.yml > .eslintrc.json > .eslintrc > package.json)。

可以被配置的信息主要分为3类:

  • Environments:你的 javascript 脚步将要运行在什么环境下(如:nodejs,browser,commonjs 等)中。
  • Globals:执行代码时脚步需要访问的额外全局变量。
  • Rules:开启某些规则,也可以设置规则的等级。

二、安装


  • 全局安装
npm i -g eslint
  • 局部安装(推荐)
npm i -D eslint

安装完毕后,接下来新建一个配置文件.eslintrc.js,或者使用如下的命令行来自动生成。

eslint --init

三、配置

3.1 指定执行环境

JavaScript 代码可以运行在浏览器或 Node.js 等环境中,每个环境的全局变量都不尽相同(如 Node.js 中没有 DOM 相关的全局变量)。在配置文件中可以自由的指定执行环境。

// .eslintrc.js
module.exports = {
  env: {
    browser: true,
    node: true,
  },
};

所有的环境可在官网查询。

3.2 指定全局变量

可以在配置文件或注释中指定额外的全局变量,false表明变量只读:

  • 使用注释来配置:
/* global var1, var2 */
/* global var1:false, var2:false */
  • 使用配置文件来配置:
// .eslintrc.js
module.exports = {
  globals: {
    var1: true,
    var2: true,
  },
};

3.3 规则

在配置文件中可以设置一些规则。

这些规则的等级有三种:

  • “off” 或者 0:关闭规则。
  • “warn” 或者 1:打开规则,并且作为一个警告(不影响 exit code)。
  • “error” 或者 2:打开规则,并且作为一个错误(exit code 将会是1)。

例如:

  • 使用配置文件来配置:
// .eslintrc.js
module.exports = {
  rules: {
    eqeqeq: 'off',
    curly: 'error',
  },
};
  • 使用注释来配置:
/* eslint eqeqeq: "off", curly: "error" */
/* eslint eqeqeq: 0, curly: 2 */

具体的规则可以在官网上找到。

四、使用方法

4.1 命令行

通过命令行使用 ESLint。

eslint [options] file.js [file.js] [dir]

4.2 编辑器

使用 VSCode 配合相应的插件直接显示错误和警告。

除了上述,还可以配合 Gulp、Webpack 等工具使用。

五、常见示例

5.1 一般示例

在项目的根目录中添加文件 .prettierrc

{

 "semi": false, // 格式化消除所有分号 

 "singleQuote": true // 格式化字符串为单引号

}

找到 .eslintrc.js,在 rules 中

rules: {

  'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',

  'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',

  // fun () {} => fun() {}

  'space-before-function-paren': 0

 }

5.2 ESLint 忽略检查

或 /* eslint-disable */ 后面的代码都不检查。

 上一篇
JS 继承汇总 JS 继承汇总
众所周知,在 ES6 之前没有类的概念,所以不能像 Java 中一个 extends 关键字就搞定了继承关系,需要一些 tricks 来实现,在 JS 中有很多种继承方式,不过每一种继承方式都有各自的优缺点,下面就介绍一些比较常用的方法。
2023-10-23
下一篇 
常用正则汇总 常用正则汇总
一、校验数字的表达式数字:^[0-9]*$ n位的数字:^d{n}$ 至少n位的数字:^d{n,}$ m-n位的数字:^d{m,n}$ 零和非零开头的数字:^(0|[1-9][0-9]*)$ 非零开头的最多带两位小数的数字:^([1-9][
2023-08-15
  目录