通过文件配置ESLint

简介

ESLint 是一个代码书写规范检查工具,通过很多规则检查来规范代码的书写风格,也可以找出一些错误。ESLint 文档里列出了规则说明,规则详细说明里也有示例。上述网站里也有用户指南、中文版本
有很多 ESLint 的 config 实践可能比直接用 ESLint 更适合自己,我用的就是 airbnb 的。

使用

项目里安装

npm install eslint

为了使用方便,在 package.json 里的 scripts 里添加

"lint": "./node_modules/.bin/eslint"

然后就可以在命令行里使用以下命令来对文件或文件夹进行 ESLint 检查了。

npm run lint 文件/文件夹

如果要用别的 config 实践的要按照可以看它们自己的安装说明进行额外的安装。

配置文件

在项目目录里添加 .eslintrc.* 文件,ESLint 会自动读取它。
文件格式:

  • .eslintrc.json
  • .eslintrc.js: javascript 格式的配置信息,通过 exports 一个对象来配置
  • .eslintrc.yml
  • .eslintrc.yaml
  • .eslintrc: yml 或 json 格式

也可以在 package.json 里添加 eslintConfig 来写入配置信息。

配置信息

extends

继承已启用的规则配置,一般使用:

{
  "extends": "eslint:recommended"
}

这里配置的规则是 ESLint 文档里打勾的规则。
我用的 eslint-config-airbnb 是:

{
  "extends": "airbnb"
}

env

配置启用环境,要启用的环境写在这里,并设置为 true ,如:

{
  "env": {
    "browser": true,
    "node": true
  }
}

rule

在 extends 里指定了设定好要启用的规则,但是很多时候有部分不一样,在这里可以设置让 extends 里部分规则不启用。rule 的使用要谨慎。
像在 airbnb 里面启用了分号检查,即必须使用分号,而我不想使用分号,配置如下:

{
  "extends": "airbnb",
  "rule": {
    "semi": “off"
  }
}

这里的 semi 就是分号检查规则。
eslint 里很多规则记不住谁是谁的话,在用 eslint 检查后它告诉你违背了哪些规则,然后在文档里查这些规则就可以知道规则具体说明,然后就可以选择是否使用它。规则值:

  • "off" 或 0 - 关闭规则
  • "warn" 或 1 - 开启规则,使用警告级别的错误:warn (不会导致程序退出)
  • "error" 或 2 - 开启规则,使用错误级别的错误:error (当被触发的时候,程序会退出)

plugins

第三方插件配置,使用前要 npm 安装它。
插件名称可以省略 eslint-plugin- 前缀。

{
  "plugins": [
    "plugin1",
    "eslint-plugin-plugin2"
    ]
}

globals

很多默认开启规则的 config 都不允许使用全局变量,它们被认为是未定义的变量,由 no-undef 规则来发出警告。所以如果要使用全局变量的话,推荐做法是在配置文件里的 globals 里声明它(等于 true 允许变量被重写,false 不允许变量被重写):

{
  "globals": {
    "globalsVar1": true,
    "globalsVar2": false
  }
}

参考:
ESLint 中文

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,444评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,421评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,036评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,363评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,460评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,502评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,511评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,280评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,736评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,014评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,190评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,848评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,531评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,159评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,411评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,067评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,078评论 2 352

推荐阅读更多精彩内容

  • ESLint 配置 ESlint 被设计为完全可配置的,这意味着你可以关闭每一个规则而只运行基本语法验证,或混合和...
    静默虚空阅读 41,252评论 3 14
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,644评论 18 139
  • EsLint入门学习整理 这两天因为公司要求,就对ESLint进行了初步的了解,网上的内容基本上都差不多,但是内容...
    点柈阅读 26,015评论 3 42
  • 两个月之前在项目中就开始使用 Eslint ,当时直接 copy 别人的 .eslintrc.js 文件,感觉好复...
    dkvirus阅读 111,940评论 33 190
  • ESLint最初是由Nicholas C. Zakas 于2013年6月创建的开源项目。它的目标是提供一个插件化的...
    gavinDu阅读 1,795评论 1 1