ESLint深入使用

本文详细介绍了ESLint的用途,包括代码检测、构建工具集成、代码格式化、实时校验和自动格式化、生成报告以及Git钩子集成。讨论了如何安装插件、配置ESLint以支持ES6语法,并展示了在Sublime、Atom和Webstorm中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ESLint简介

我眼中的ESLint

我们先来说说ESLint是什么,能够做什么工作
官网的简介如下:

The pluggable listing utility for JavaScript and JSX.
支持插件的JavascriptJSX的代码检测工具

官网比较含蓄,似乎功能也不过如此。不过,看ESLint不能只看它本身的功能,千万要注意<插件>这个字眼。好了,和大家说说我眼中的ESLint能够做什么事情。

下面谈谈具体怎么使用ESLint

插件安装

建议全局安装ESLint及其常用插件:

$ npm i -g aslant babel eslint-plugin-babel eslint-plugin-standard eslint-config-standard eslint-plugin-promise eslint-config-standard  // babel-eslint可能会需要管理员权限,调用系统syslink来创建软链接 sudo npm i -D babel-eslint

当然如果你不想全局安装也可使用 npm -i -D 来局部安装

ESLint配置

ESLint支持以下配置方式:

  • 命令行参数
  • package.json 中的 eslintConfig
  • .eslintrc.*配置文件: 支持json、js等
  • 文件内部 comment 注释, 如下:
const NOOP_FN = function() {} // eslint-disable-line space-before-function-paren  //单行注释,只作用于该行

const NOOP_FN = function() {} // eslint-disable space-before-function-paren // 该行以下都适用该规则
  • .eslintignore: 可设置忽略文件。默认为/node_module/* /bower_componenets/*

个人建议, 使用单独的eslintrc配置文件,这样别人一看代码结构就知道使用了eslint来校验代码,最好是js文件,json文件是不支持注释的。如果放在eslintConfig中而自己又喜欢尝试不同的规则设置, 则会导致 package.json 的git diff.

设置ESLint支持ES6语法

编辑.eslintrc.js文件如下:

module.exports = {
    "env": {
      "browser": true,
      "es6": true
    },
    "extends": "standard",
    "plugins": [
        "standard",
        "promise"
    ],
    "parser": "babel-eslint",
    "parserOptions": {
      "sourceType": "module",
      "ecmaFeatures": {
      }
    },
    "rules": {
      "indent": [1, 2],
      "linebreak-style": [2, "unix"],
      "quotes": [1, "single"],
      "semi": [ 1, "never"],
      "semi-spacing": 0,
      "no-extra-semi": 1,
      "no-unused-vars": [ 1, { "vars": "all", "args": "none" }
      ],
      "no-trailing-spaces": 2,
      "no-console": 1
    }
};

具体规则可依据自己的喜好与项目的要求来改。
推荐 plugins 设置为standard(依赖于eslint-plugin-standard插件), 然后自己再针对某个规则来单独设置覆盖.
package.json 文件中的scripts字段中配置如下3个属性即可:

"eslint": "eslint --format './node_modules/eslint-friendly-formatter/index.js' ./src/* "

"eslint_html": "eslint --format html ./src/* -o ./dist/eslint/index.html"

"eslint_markdown": "eslint --format './node_modules/eslint-formatter-markdown/markdown.js' ./src/*  -o ./dist/eslint/index.md"

至此ESLint配置完毕,可依次执行如下命令,来输出 代码校验结果、或生成校验报告

$ npm run eslint    
$ npm run eslint_html 
$ npm run eslint_markdown 

ESLint结合编辑器实现时实校验、自动格式化

Sublime-3

安装插件: SublimeLinter、ESlint-formatter两个插件:并设置SublimeLinter使用ESLint来校验:
Sublime Text --> preferences --> Package settings --> Sublime Linter --> settings - User。该按钮会打开一个配置文件,给该配置文件添加添加如下设置:
{
  "user": {
    "linters": {
      "eslint": { "@disable":false, "args": [], "excludes": [] }
    },
    "show_errors_on_save": true  //为true时,保存文件时,会弹出该文件所有不规范的列表及具体规则名,如下图
  }
}

保存该配置文件, 即会生效。此时打开一个js文件,界面会如下:
Sublime 3 中 启用ESLinter 校验效果

保存js文件时,效果图如下:

Sublime 3 中 设置 ESLint 在文件保存时展示错误列表

Command+Shift+P: 搜索aslant 出现 ESLint Formatter: Format this file 点击确定进行该文件的格式化

Sublime 3 中 使用 ESLint formatter 进行代码自动 fix

格式化结果如下:

Sublime 3 中 启用ESLinter 代码 fix 结果


Atom

安装插件:linter、linter-eslint、eslint-fixer 三个插件, 安装完成重启Atom即可生效

Atom 中的 eslint 信息提示效果如下:

Atom 中启用 ESLint 后的错误提示截图

Atom 中进行 代码格式化 的操作:

Atom 中使用 ESLint-fix插件进行代码格式化 fix

Atom 中 格式化后效果:

Atom 中使用ESLint-fix 格式化代码结果



Webstorm

由于个人很少使用 Webstorm ,所以在测试过程中出了不少问题,不知道是因为个人设置问题,还是Webstorm自身的问题,有兴趣的同鞋可以自己研究分享下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值