ESLint教程,ESLint开发指南,ESLint中文使用手册,ESLint中文文档

百度了一下,发现关于ESLint的文章不是很多。而有的人已经使用很久了,希望通过本文在给大家普及一下eslint的相关知识。

ESLint是什么?

ESLint是一个QA工具,用来避免低级错误和统一代码的风格。

ESLint

ESLint被设计为完全可配置的,主要有两种方式来配置ESLint:

  • 在注释中配置:使用JavaScript注释直接把配置嵌入到JS文件中。
  • 配置文件:使用下面任一的文件来为全部的目录和它的子目录指定配置信息。

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

  • javascript:使用.eslintrc.js文件并导出一个包含配置的对象。
  • YAML:.eslintrc.yaml或者.eslintrc.yml
  • JSON:.eslintrc.json,并且此文件允许使用JS形式的注释
  • 废弃的用法:.eslintrc,此文件可以是JSON或者YAML
  • package.json:在package.json文件中创建eslintConfig属性,所有的配置包含在此属性中。

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

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

ESLint安装

npm install -g eslint

如果你的项目还没有配置文件的话,可以通过指定–init参数来生成一个新的配置文件:

eslint --init

然后,配合命令行的eslint工具就可以检查代码了。

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

当然,也可以安装在项目中,然后配合编辑器的插件(如vscode-eslint)来使用。

指定全局变量

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

注释:

/* global var1, var2 */
/* global var1:false, var2:false */

JSON:

{
  "globals": {
      "var1": true,
      "var2": false
  }
}

在配置文件中可以设置一些规则。
规则的错误等级有三种:

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

也可以在注释中关闭所有或者某个规则:

/* eslint-disable */
/* eslint-enable */
/* eslint-disable no-alert, no-console */
/* eslint-enable no-alert, no-console */

具体的规则可以在官网上找到,或者使用别人写好的配置,例如eslint-config-airbnb。

下面可以下载demo,进入练习部分。

学习操作步骤

进入demos/eslint-demo目录,安装 ESLint。

$ cd demos/eslint-demo
$ npm install eslint --save-dev

通常,我们会使用别人已经写好的代码检查规则,这里使用的是 Airbnb 公司的规则。所以,还要安装 ESLint 这个规则模块。

$ npm install eslint-plugin-import eslint-config-airbnb-base --save-dev

上面代码中,eslint-plugin-import是运行这个规则集必须的,所以也要一起安装。

ESLint 的配置文件是.eslintrc.json,放置在项目的根目录下面。新建这个文件,在里面指定使用 Airbnb 的规则。

{
  "extends": "airbnb-base"
}

4、打开项目的package.json,在scripts字段里面添加三个脚本。

{
  // ...
  "scripts" : {
    "test": "echo /"Error: no test specified/" && exit 1",
    "lint": "eslint **/*.js",
    "lint-html": "eslint **/*.js -f html -o ./reports/lint-results.html",
    "lint-fix": "eslint --fix **/*.js"
  },
  // ...
}

除了原有的test脚本,上面代码新定义了三个脚本,它们的作用如下。

  • lint:检查所有js文件的代码
  • lint-html:将检查结果写入一个网页文件./reports/lint-results.html
  • lint-fix:自动修正某些不规范的代码

5、运行静态检查命令。

$ npm run lint
  1:5  error    Unexpected var, use let or const instead  no-var
  2:5  warning  Unexpected console statement              no-console
  2 problems (1 error, 1 warning)

正常情况下,该命令会从index.js脚本里面,检查出来两个错误:一个是不应该使用var命令,另一个是不应该在生产环境使用console.log方法。

6、修正错误。

$ npm run lint-fix

运行上面的命令以后,再查看index.js,可以看到var x = 1;被自动改成了const x = 1;。这样就消除了一个错误,但是还留下一个错误。

7、修改规则。

由于我们想要允许使用console.log方法,因此可以修改.eslintrc.json,改变no-console规则。请将.eslintrc.json改成下面的样子。

{
  "extends": "airbnb-base",
  "rules": {
    "no-console": "off"
  }
}

再运行npm run lint,就不会报错了。

$ npm run lint

ESLint教程,ESLint开发指南,ESLint中文使用手册,ESLint中文文档

: » ESLint教程,ESLint开发指南,ESLint中文使用手册,ESLint中文文档

原创文章,作者:bd101bd101,如若转载,请注明出处:https://blog.ytso.com/251239.html

(0)
上一篇 2022年5月2日
下一篇 2022年5月2日

相关推荐

发表回复

登录后才能评论