# 初始化一个 npm 项目 mkdir eslint-test cd eslint-test npm init -y # 安装 eslint npm init @eslint/config回答一系列问题后,你可以看目录中的配置文件 .eslintrc.js,这个配置文件告诉 ESLint 如何去解析项目,这个项目采用了哪些规范和规则。ESLint 是一个高度配置化的工具。尤其需要留意 extends 和 rules 字段,它们定义了在项目中采用哪些规则。一段代码有没有问题,取决于项目中应用了哪些规则。比如:{semi: ["error", "always"]} 要求必须在语句末尾添加分号,相反,semi: ["error", "never"] 禁止任何不必要的分号。
module.exports{ // ... extends: 'airbnb-base' // ... }写一段简单的 JavaScript 代码用于测试:
// file - add.js function add(x,y) { return Number(x)+Number(y); } // ❌ 这是一个错误的调用 add("2"+'3')ESLint 是一个命令行工具,这个命令调用之前安装的 ESLint 去检查 add.js 代码:
npx eslint add.js输出结果:
eslint-test/add.js 1:15 error A space is required after ',' comma-spacing 2:19 error Operator '+' must be spaced space-infix-ops 5:5 error Strings must use singlequote quotes 5:8 error Operator '+' must be spaced space-infix-ops 5:8 error Unexpected string concatenation of literals no-useless-concat ✖ 5 problems (5 errors, 0 warnings) 4 errors and 0 warnings potentially fixable with the `--fix` option.可以看到,ESLint 发现了代码中的 5 个 error 等级的问题,并且提示其中的 4 个问题是可修复的。根据提示,执行:
npx eslint add.js --fix可以看到,现在提示只有一个问题:
eslint-test/add.js 5:9 error Unexpected string concatenation of literals no-useless-concat ✖ 1 problem (1 error, 0 warnings)重新查看 add.js 文件,可以看到 4 个格式化问题已经被自动修复了。检查第 5 行 add('2' + '3');, 发现正确写法应该是 add('2', '3');。
如果插件无法正确读取项目中的 ESLint 程序和配置,会导致插件启动失败。这个问题常常是因为 ESLint 没有安装在打开目录的根部。可以通过修改插件的配置解决。因为插件始终使用工作目录中的 ESLint 程序和配置,当使用本地安装时,每个项目都是独立的,不会冲突。
{ // ... "editor.codeActionsOnSave": { "source.fixAll.eslint": true } }WebStorm 用户可以参考这里设置。启用后,就几乎不用手动执行 eslint 命令了。